Re: Работа с fstream objects

shurik0906

Вот кусочек кода:
fstream inp; inp.open("input";
string str;
inp>>str;
cout<<str;
inp<<str;

Вся проблема в том, что в cout str выводится, а обратно в inp - нет. Кто что-нибудь знает по этому поводу? Что нужно сделать, чтобы строка записывалась обратно в inp?

shurik0906

Если кому интересно, то решение такое (жаль, что никто не смог помочь - пришлось самому повозиться):
не хватало вот чего:
fstream inp; inp.open("input",ios_base::in|ios_base::out|ios_base::binary);
inp.seekp(10,ios_base::cur);
inp<<str;

evgen5555



Вся проблема в том, что в cout str выводится, а обратно в inp - нет.
Ясен перец, устанавливается флаг eof или ещё какой-нибудь, мешающий записи в файл.
Тут даже непонятно, что ожидается от программы, добавление в файл каких-либо значений или их замена...

rosali

 
устанавливается флаг eof или ещё какой-нибудь, мешающий записи в файл.

Я думаю дело совсем не в этом, а просто записывается всё нормально, но поверх старого вот и не заметно что записалось. Вначале же по умолчанию оба курсора, и на запись и на чтение, на нуле стоят. Так что надо промотать, или seekp или ios_base::app

evgen5555



оба курсора

Незачот, курсор только один.
Оставить комментарий
Имя или ник:
Комментарий: