Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Запись в файл посимвольно


Автор: programming 9.10.2012, 17:29
Есть бинарный файл. 
Открываем его для чтения и для записи:
Код

fstream cr("crypt.txt", ios::in | ios::binary);
fstream tr("crypt.txt", ios::out | ios::binary);

Файл существует и в нем уже что-то содержится.

Задача проста. Нужно вытаскивать символы из этого файла и, проводя некоторые изменения(над каждым символом), на ту же позицию записывать новый символ.

К примеру:
был
Цитата

abcd

стал
Цитата

grdr


Я извлекаю каждый символ таким образом в цикле:
Код

char a;
while(a=cr.peek()!=EOF)
{
//тут ведутся преобразования с полученным символом и я получаю новый символ в ту же переменную a

//и вот тут мне нужно записать новый символ на ту же позицию, откуда я его считал - проблема в этом
}


Помогите пожалуйста подобрать нужную функцию, которая бы записала именно один нужный символ на нужную позицию, а не стерла все, что стоит после.

Спасибо.

Автор: programming 9.10.2012, 18:03
И еще.. Когда я открываю вот так - fstream tr("crypt.txt", ios::out | ios::binary); файл для записи - он сразу очищается. Как это предотвратить?

Автор: NoviceF 9.10.2012, 18:56
Цитата(programming @ 9.10.2012,  19:03)
И еще.. Когда я открываю вот так - fstream tr("crypt.txt", ios::out | ios::binary); файл для записи - он сразу очищается. Как это предотвратить?

 ios_base::in | ios_base::out

Попробуй открыть в таком режиме - должно помочь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)