Я, должно быть, упускаю что-то простое здесь, но я пытаюсь написать и прочитать двоичный файл на C ++.
ofstream file3("C:\\data2.txt", ios::out | ios::binary);
for (int i = 0; i < 100; i++) {
file3.write((char*)(&i), sizeof(int));
}
ifstream file4("C:\\data2.txt", ios::in | ios::binary);
int temp;
while (!file4.eof()) {
file4.read((char*)(&temp), sizeof(int));
cout << temp << endl;
}
Файл выглядит так, как будто он создается правильно при просмотре с помощью шестнадцатеричного редактора.Однако, когда я читаю файл, он читает 1 случайное нежелательное значение и выходит против перечисления всех чисел.
Обновление
Я сделал небольшое обновление на основе комментариев, и все кажетсятеперь хорошо.В Windows закрытие сделало разницу, и я исправил условие цикла.
ofstream file3("C:\\data2.txt", ios::out | ios::binary);
for (int i = 0; i < 100; i++) {
file3.write((char*)(&i), sizeof(int));
}
file3.close();
ifstream file4("C:\\data2.txt", ios::in | ios::binary);
//cout << file4.eof();
int temp;
while (!file4.read((char*)(&temp), sizeof(int)).eof()) {
cout << temp << endl;
}