怎么判断二进制文件是否结束
如何判断二进制文件是否结束
输出的结果总是 多出一个101: 1 101 101
------解决思路----------------------
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int val[2]={1,101};
ofstream fio("a",ios::out|ios::binary);
if(!fio) return 0;
for(int i(0);i< 2; ++i)
fio.write((char*)(val+i),sizeof(int));
fio.close();
ifstream fin("a",ios::in|ios::binary);
if(!fin) return 0;
while(fin) // !fin.eof() 这样也不行
{
fin.read((char*)val,sizeof(int));
cout<<*val<<endl;
}
fin.close();
return 0;
}
输出的结果总是 多出一个101: 1 101 101
------解决思路----------------------
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int val[2] = {1, 101};
ofstream fio("a", ios::out
------解决思路----------------------
ios::binary);
if(!fio) return 0;
for(int i(0); i < 2; ++i)
fio.write((char *)(val + i), sizeof(int));
fio.close();
ifstream fin("a", ios::in
------解决思路----------------------
ios::binary);
if(!fin) return 0;
while(!fin.eof()) // !fin.eof() 这样也不行
{
fin.read((char *)val, sizeof(int));
if (fin.gcount() == sizeof(int))
cout << *val << endl;
}
fin.close();
return 0;
}