【发布时间】:2014-05-01 08:17:37
【问题描述】:
我正在尝试使用以下代码从二进制文件中读取数据:
fstream s;
s.open(L"E:\\test_bin.bin", ios::in | ios::binary);
int c = 0;
while (!s.eof())
{
s >> c;
cout << c;
}
c 始终为 0(c 的当前值。如果我将 c 设置为 1,则结果为 1)。文件存在并且它的数据不是零,所以问题不在文件中。我可以使用 fread 和 s.get() 读取这个文件,但是为什么给定的代码不起作用?
【问题讨论】:
-
在打开文件后放置一个if(s)来检测错误(同样
while (!s.eof())是错误的) -
从二进制文件中读入后,你期望 'c' 包含什么?一大块比特还是一个完整的数字?
-
它仍然什么也没读,但正如我提到的,文件没问题,可以成功打开。
-
当然是大块的。