Yêu cầu thg 2 24, 2023 3:41 SA 344 0 1
  • 344 0 1
0

Binary file trong c++

Chia sẻ
  • 344 0 1

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

1 CÂU TRẢ LỜI


Đã trả lời thg 2 24, 2023 7:14 SA
+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:

https://cplusplus.com/reference/ios/ios/eof/

https://cplusplus.com/reference/istream/istream/read/

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí