首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个二进制文件读写的有关问题

2012-05-05 
请教一个二进制文件读写的问题#includefstream#includeiostreamusing namespace stdint main(){ofstr

请教一个二进制文件读写的问题
#include<fstream>
#include<iostream>
using namespace std;
int main()
{

ofstream fout("wel.dat",ios::out|ios::binary|ios::ate); //二进制打开一个文件
int c; //拟在文件中以二进制形式输入数字
while(cin>>c)
{
  fout.write((char *)(&c),sizeof(c));
}
fout.close();

ifstream fin("wel.dat",ios::in|ios::binary); 
int d=0;
while(!fin.eof())
{
  fin.read((char *)(&d),sizeof(d));
  cout<<d<<endl;
}
fin.close();
}


现在的问题是编译运行时,输入 1 2 3 4 ctrl+Z 写入文件
读取显示时 1 2 3 4 4
这是为啥啊?
先谢谢大家

[解决办法]
请问ctrl+Z怎么用char表示呢?
[解决办法]
eof()返回true时是读到文件结束符0xFF,而文件结束符 是最后一个字符的下一个字符。
用下面的语句判断,应该可以解决
while (fin.peek() != EOF)

热点排行