C++程序 :将有10个整数的数组存入到一个文本文件中,然后再从这个文件中读数据并显示在屏幕上

#include<iostream>#include<fstream>usingnamespacestd;intmain(void){ ... #include<iostream>#include<fstream>using namespace std;int main(void){ int a[]={1,5,78,90,25,16,18,86,91,7},n=10,x; fstream f; f.open("my_file.txt",ios::out); if(f.fail()) {    cout<<"打开文件失败!"<<endl;  exit(1); } for(int i=0;i<n;i++)  f<<a[i]<<" "; f.close(); f.open("my_file.txt",ios::in); if(f.fail()) {  cout<<"打开文件失败!"<<endl;  exit(1); } while(!f.eof()) {  f>>x;  cout<<x<<" "; } cout<<endl; f.close(); system("PAUSE");  return 0;} 输出结果是:1 5 78 90 25 16 18 86 91 7 7为什么输出了两次最后一个数?请问下是不是while(!f.eof())判断的是结束符 因为最后一个数7后面是空格 !f.eof()为真 所以在输出一次最后一个数7?  展开
 我来答
C加语言初学者
推荐于2017-10-14 · TA获得超过278个赞
知道答主
回答量:219
采纳率:0%
帮助的人:202万
展开全部
把输入的部份改成这样!
for(int i=0;i<n;i++)
{
if(i==n-1)f<<a[i];
else f<<a[i]<<' ';
}
个人觉得应该是你最后多输入了个‘ ’空格。while(!f.eof()多循环了一次.
应该是空格不代表文件结束。
还有显示文本内容可以用一个字符接收,直接这样
char ch;
while(f.get(ch))//将文件的每一字符逐个读入ch中//
{
cout.put(ch);
}
匿名用户
2017-10-09
展开全部
while(f>>x){
cout<<x<<" ";
}

///////////这样写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
众里寻他0822
2012-03-28 · TA获得超过136个赞
知道小有建树答主
回答量:263
采纳率:100%
帮助的人:250万
展开全部
我也遇到过,你的说法有误
while(!f.eof()&&f>>x)
{
cout<<x<<" ";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
10...4@qq.com
2012-03-28 · TA获得超过245个赞
知道答主
回答量:119
采纳率:0%
帮助的人:55.9万
展开全部
你不能把你上面的代码 规范化了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式