
c++程序,请问哪里出错了?为什么会显示这样的结果?
#include<iostream>#include<fstream>usingnamespacestd;intmain(){charch;fstreamout;out....
# include<iostream>
# include<fstream>
using namespace std;
int main()
{
char ch;
fstream out;
out.open("text.txt",ios::in|ios::out);
out<<"abcdefg";
out.seekp(0);
out.get(ch);
while(ch!=EOF)
{
cout<<ch;
out.get(ch);
}
cout<<endl;
return 0;
}
运行之后满屏都是烫字,后来再运行就变成了黑屏没有任何显示。我加入了if(!out)语句后显示显示运行错误和无法打开文件,后来再运行又变成了黑屏无任何显示,请问是怎么回事? 展开
# include<fstream>
using namespace std;
int main()
{
char ch;
fstream out;
out.open("text.txt",ios::in|ios::out);
out<<"abcdefg";
out.seekp(0);
out.get(ch);
while(ch!=EOF)
{
cout<<ch;
out.get(ch);
}
cout<<endl;
return 0;
}
运行之后满屏都是烫字,后来再运行就变成了黑屏没有任何显示。我加入了if(!out)语句后显示显示运行错误和无法打开文件,后来再运行又变成了黑屏无任何显示,请问是怎么回事? 展开
3个回答
展开全部
用out.open("text.txt",ios::in|ios::out);这种方式打开文件时,文件事先必须存在。所以本例中若当前目录下没有text.txt文件,则文件打开并没有成功。所以得先在当前目录下建立一个空文件text.txt。
while(ch!=EOF)中的ch永远不可能为EOF,因为get(&)函数越过文件结尾时返回0而不是读取EOF。所以要把out.get(ch);while(ch!=EOF){...改成一句while(out.get(ch)){...就可以了。
经1、2改动后while循环中的out.get(ch);就多余了,必须删除。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询