c++文件操作

将一个txt文件内的数字写入.bin文件内,为什么我txt文件内什么都没写.bin文件中也会有东西呢?如图代码如下:#include<iostream>#include<... 将一个txt文件内的数字写入.bin文件内,为什么我txt文件内什么都没写.bin文件中也会有东西呢?如图代码如下:#include<iostream>#include<cstdlib>#include<fstream>#include<iomanip>using namespace std;void main(){ int a[100],n=0; fstream infile("data.txt",ios::in|ios::_Nocreate); if(!infile) { cout<<"Not found ! "; exit(1); } while(!infile.eof()) infile>>a[n++]; infile.close(); fstream outfile("data.bin",ios::out|ios::binary); if(!outfile) { cout<<"No found ! !"; exit(1); } outfile.write((char*)&n,sizeof(int)); outfile.write((char*)a,n*sizeof(int)); outfile.close(); int b[20],i=0,k; fstream in("data.bin",ios::in|ios::binary); while(!in.eof()) { in.read((char*)(b+i),sizeof(int)); i++; if(in.fail()) break; } k=i-1; for(i=0;i<k;i++) cout<<b[i]<<" "; cout<<endl;} 展开
 我来答
电灯剑客
科技发烧友

2016-06-13 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1.2万
采纳率:83%
帮助的人:4926万
展开全部
你对EOF的用法有点问题
EOF由读取操作产生,对空文件直接用EOF测试没用,要进行一次读取才会得到
你可以把
while(!infile.eof())
infile>>a[n++];
改成
int tmp;
infile>>tmp;
while(!infile.eof())
{
a[n++]=tmp;

infile>>tmp;
}
更多追问追答
追问
但是就算文件不是空的,也会多出一些东西来啊
我在txt文件中输入一些数字,在写进.bin文件中,但是输入到屏幕上的时候,第一个数字是显示的之前txt文件中数字的个数,这又是怎么回事??
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式