Я пытаюсь открыть двоичный файл для чтения и записи (flag: ios_base :: binary | ios_base :: in | ios_base :: out).
Мой файл уже существует, и его содержимое: 123
Нет проблем с чтением файла, но запись файла не работает после закрытия файла.Содержимое файла не имеет изменений.Кажется, fstream.write () работает неправильно.
Я использую VS2010.
Код:
#include <iostream>
#include <fstream>
using namespace std;
int main (void)
{
fstream stream;
// Opening the file: binary + read + write.
// Content of file is: 123
stream.open("D:\\sample.txt", ios_base::binary | ios_base::in | ios_base::out);
// Read 1 bye.
char ch;
stream.read(&ch, 1/*size*/);
// Check any errors.
if(!stream.good())
{
cout << "An error occured." << endl;
return 1;
}
// Check ch.
// Content of file was: 123
if(ch == '1')
{
cout << "It is correct" << endl;
}
// Write 1 bye.
ch = 'Z';
stream.write(&ch, 1/*size*/);
// Check any errors.
if(!stream.good())
{
cout << "An error occured." << endl;
return 1;
}
// Close the file.
stream.close();
// OHhhhhhhhhhh:
// The content of file should be: 1Z3
// but it is: 123
return 0;
}
Спасибо.
Извините за мойpooooooor английский: -)