Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 94
1

Добавление строк в вектор

22.11.2012, 13:55. Показов 1746. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
При работе со строками возникла проблема добавления новой строки в вектор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    vector<char*>ret;
    char tmp[255];
    FILE* f;
    bool isHave=false; 
    f=fopen(fname,"r");
    if (f==NULL)
    {return ret;}
    while (!feof(f))
    {   
        fgets(tmp,MAX_L,f); //считываем в tmp очередную строку
        isHave=Serch(tmp,str);
        if (isHave && !V)//
        {
            ret.push_back(tmp);// ТУТ поблема
        }
        else 
                  ...
    }
Дело в том, что считывая с файла строку, я помещаю указатель на нее в вектор, и при следующем считывании строка записывается по тому же адресу, и следовательно записанная ранее в вектор строка тоже меняется.
Подскажите плз как наиболее рационально решить эту проблему?

PS.Не хотелось бы создавать массив указателей на строки в цикле, а потом удалять его delete[]'ом
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2012, 13:55
Ответы с готовыми решениями:

Добавление строк в Вектор
Не могу понять почему строки,которые я читаю из файла не так как надо добавляются в вектор Мой...

Добавление thread в вектор
Здравствуйте. Прошу помощи. Выполняю задание, но возникает ошибка при добавлении thread в vector,...

Считывание и добавление в вектор
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&lt;vector&gt; using std::cin; using std::cout;...

Добавление объектов в вектор
У меня есть класс в котором очень много объектов. Мне нужно все объекты добавить в вектор, но...

4
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
22.11.2012, 15:14 2
Ebis, std::string вместо char*
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2012, 15:15 3
Проще всего string использовать.
1
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 94
22.11.2012, 16:24  [ТС] 4
Спасибо за совет, так и поступил)
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
22.11.2012, 16:26 5
И заодно fgets на std::fstream
1
22.11.2012, 16:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2012, 16:26
Помогаю со студенческими работами здесь

Добавление элемента в вектор классов
Есть два класса Product и List. В List есть вектор vector&lt;Product &gt; _pr. Каким образом добавить...

Добавление в вектор объекта класса в конструкторе
Почему у меня не получается сделать вот так? vector &lt;C&gt; Vec; class C { public:

Добавление элементов в вектор. Тип vector
Напишите программу, читающую строки из потока cin и сохраняющую их в векторе.

Добавление неодинаковых строк в массив строк
Здравствуйте! Возникла такая проблема, не могу понять как реализовать добавление в массив строк...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru