0
Binary file trong c++
Mọi người cho em hỏi vì sao khi em lưu chuỗi a vào file binary nhưng mà khi đọc file thì lại nhận được thêm 1 số 10 ở cuối vậy ạ. Em đã thử với nhiều số khác nhau ở cuối và lần nào đọc file cũng nhận được 2 số cuối giống nhau hết
Thêm một bình luận
1 CÂU TRẢ LỜI
+1
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream write("test.txt", ios::binary);
int a[] = {1, 2, 3, 4, 7, 10}, n;
write.write(reinterpret_cast<char*> (a), sizeof(a));
write.close();
ifstream read("test.txt");
while(!read.eof())
{
n = 88;
read.read(reinterpret_cast<char*> (&n), 4);
cout << n;
}
/*
while(read.read(reinterpret_cast<char*> (&n), 4))
{
cout << n;
}
if(read.eof())
{
cout << " end";
}
else
{
cout << " error";
}
*/
read.close();
return 0;
}
có vẻ read.eof() dùng để kiểm tra lỗi, nếu set n bằng 88 trước khi đọc thì sẽ thấy câu lệnh đọc cuối cùng không được thực hiện.
Nguồn: