返回信息流a是一个新建的txt文档,空的
ifstream is("a.txt");
string x;
is >> x;
cout << x;
显示出一个回车,这是为什么呢,请问
还有这个循环
while(!is.eof()){
is >> x;
cout << x;
}
最后一个字符串会出现两次,我想问一下,最后判定eof那一次,是跳过了is>>x这一句直接输出了还是回到了最后一个字符串又输入x一次,也就是x被最后一个字符串写了两次呢, thx
这是一条镜像帖。来源:北邮人论坛 / cpp / #81118同步于 2014/7/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]关于读取文件的问题
NM999
2014/7/27镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
ifstream 只有在读完最后一个字符之后再继续试图读才会判定eof,所以得放在>> 操作后判断是否到文件尾。
for (;;)
{
is >> str;
if (!is) break;
cout << str;
}
or
while (is >> str)
{
cout << str;
}
【 在 NM999 的大作中提到: 】
: a是一个新建的txt文档,空的
: ifstream is("a.txt");
: string x;
: ...................
哦,原来是这样啊,可是如果判断后还读取的话可以读取得到吗,还有第一个问题是为什么会有回车呢,我在txt里面输入了空格,回车,依旧是输出回车,但是只要输入了一个字符的话就可以只输出字符了,这是问什么呢,请问
【 在 gaoweiwei 的大作中提到: 】
: ifstream 只有在读完最后一个字符之后再继续试图读才会判定eof,所以得放在>> 操作后判断是否到文件尾。
: [code=c]
: for (;;)
: ...................
已经到尾部的时候再继续读就读不到东西了,x的值保持不变。回车的问题不清楚,按理说stream不会读空白字符的
【 在 NM999 的大作中提到: 】
: 哦,原来是这样啊,可是如果判断后还读取的话可以读取得到吗,还有第一个问题是为什么会有回车呢,我在txt里面输入了空格,回车,依旧是输出回车,但是只要输入了一个字符的话就可以只输出字符了,这是问什么呢,请问
thx
【 在 gaoweiwei 的大作中提到: 】
: 已经到尾部的时候再继续读就读不到东西了,x的值保持不变。回车的问题不清楚,按理说stream不会读空白字符的