Форум программистов, компьютерный форум CyberForum.ru

Не могу ввести в файл строку во время чтения, указатель позиции в файле - C++

Восстановить пароль Регистрация
 
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
21.12.2013, 21:30     Не могу ввести в файл строку во время чтения, указатель позиции в файле #1
читаю из файла данные в структуру, и сравниваю их с str и str2, при совпадении надо будет добавить другую структуру в файл. Решил сделать так - читаю строки в файле, при совпадении в if() записываю текущую строку в string, а на её место добавляю другую - заданную с клавы(в данном куске кода я её не выкладывал дабы не загоромождать), после чего последовательно сохраняю строку и на её место пишу предыдущую...

считываю до места нормально, потом пытаюсь записать что-либо в файл, но не получается...не очень понимаю как правильно сделать это всё с помощью указателей позиции в файле, но знаний не хватает...точнее tellg() и tellp() ведут себя не очень понятно...Вообщем прошу помочь знающих людей...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void addWatch(watch**a,int counter)
{
string str;
string str2;
 
fstream in2("file2.txt");
 
cout<<"Please enter company name: ";
cin>>str;
cout<<"Please enter company nation: ";
cin>>str2;
 
bool flag=true;
int i=0;
    while (!in2.eof())
    {
    watch *b=new watch;
        getline(in2,b->name,' ');
        getline(in2,b->company,' ');
        getline(in2,b->nation,' ');
        getline(in2,b->old,' ');
        getline(in2,b->price,'\n');
 
        if (!strcmp(str.c_str(),b->company.c_str())&&!strcmp(str2.c_str(),b->nation.c_str()))
        {
        in2<<"TEST  TEST    TEST    TEST    TEST\n";    // вот здесь как-то надо что-то сделать 
        break;
        }
    i++;
    delete b;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
21.12.2013, 21:34  [ТС]     Не могу ввести в файл строку во время чтения, указатель позиции в файле #2
прикрепляю всю прогу
Вложения
Тип файла: rar freeNatalSol.rar (208.4 Кб, 3 просмотров)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.12.2013, 21:50     Не могу ввести в файл строку во время чтения, указатель позиции в файле #3
Со string в полях структуры, а значит и с текстовыми методами записи полей структуры в файл, замена структуры в файле не получится.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
21.12.2013, 22:01  [ТС]     Не могу ввести в файл строку во время чтения, указатель позиции в файле #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Со string в полях структуры, а значит и с текстовыми методами записи полей структуры в файл, замена структуры в файле не получится.
я считываю в структуру только в начале, чтобы найти нужную строку по 2 введённым параметрам, а дальше я могу спокойно читать/записывать по строкам, разве нет..
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.12.2013, 22:15     Не могу ввести в файл строку во время чтения, указатель позиции в файле #5
Цитата Сообщение от dzrkot Посмотреть сообщение
а дальше я могу спокойно читать/записывать по строкам, разве нет..
Читать - да. А записывать... Если только новая строка будет совпадать по длине с той, которую хотите переписать. В файле же строк, как это выглядит в блокноте, нет, есть непрерывный ряд кодов символов. Перезапись в файле была бы возможна, если, вместо string, полями были бы массивы char. Тогда можно было бы использовать бинарную запись/чтение, и перезаписывать стукрутры в файле (размер структур - фиксированный).
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
21.12.2013, 22:24  [ТС]     Не могу ввести в файл строку во время чтения, указатель позиции в файле #6
если я всё считаю из файла во временный массив структур, зная номер строки после которой нужно добавить новую структуру - добавлю её, а потом перепишу всё это обратно в файл
по идее прокатит, но переписывать так лень..(
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.12.2013, 22:44     Не могу ввести в файл строку во время чтения, указатель позиции в файле #7
Цитата Сообщение от dzrkot Посмотреть сообщение
но переписывать так лень..(
1) Отказаться от string. 2) Сереализация (может быть). Не занимался, поэтому точно сказать не могу: поможет это здесь или нет.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
21.12.2013, 23:30  [ТС]     Не могу ввести в файл строку во время чтения, указатель позиции в файле #8
...удалить...сам спросил, сам ответил)))

Добавлено через 33 минуты
Да, решил при помощи доп массива...жестоко конечно))
alsav22
21.12.2013, 23:41
  #9

Не по теме:

Цитата Сообщение от dzrkot Посмотреть сообщение
сам спросил, сам ответил)))
А я на что время потратил?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 00:03     Не могу ввести в файл строку во время чтения, указатель позиции в файле
Еще ссылки по теме:

Ввод-вывод: Не могу ввести строку в std::string! C++
Удалить последнюю строку в файле (или сохранить файл без них) C++
При работе fstream указатель типа pos_type (позиции в файле) не работает C++

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

Или воспользуйтесь поиском по форуму:
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
22.12.2013, 00:03  [ТС]     Не могу ввести в файл строку во время чтения, указатель позиции в файле #10
Цитата Сообщение от alsav22 Посмотреть сообщение

Не по теме:


А я на что время потратил?

Не по теме:

Да не...)) я в том смысле, что я там задал вопрос, потом через минуту сообразил что я знаю ответ, и написал что "сам спросил сам ответил)"



фуф, задачу решил наконец)))
Yandex
Объявления
22.12.2013, 00:03     Не могу ввести в файл строку во время чтения, указатель позиции в файле
Ответ Создать тему
Опции темы

Текущее время: 20:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru