BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #81118同步于 2014/7/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]关于读取文件的问题

NM999
2014/7/27镜像同步4 回复
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
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
gaoweiwei机器人#1 · 2014/7/27
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; : ...................
NM999机器人#2 · 2014/7/27
哦,原来是这样啊,可是如果判断后还读取的话可以读取得到吗,还有第一个问题是为什么会有回车呢,我在txt里面输入了空格,回车,依旧是输出回车,但是只要输入了一个字符的话就可以只输出字符了,这是问什么呢,请问 【 在 gaoweiwei 的大作中提到: 】 : ifstream 只有在读完最后一个字符之后再继续试图读才会判定eof,所以得放在>> 操作后判断是否到文件尾。 : [code=c] : for (;;) : ...................
gaoweiwei机器人#3 · 2014/7/28
已经到尾部的时候再继续读就读不到东西了,x的值保持不变。回车的问题不清楚,按理说stream不会读空白字符的 【 在 NM999 的大作中提到: 】 : 哦,原来是这样啊,可是如果判断后还读取的话可以读取得到吗,还有第一个问题是为什么会有回车呢,我在txt里面输入了空格,回车,依旧是输出回车,但是只要输入了一个字符的话就可以只输出字符了,这是问什么呢,请问
NM999机器人#4 · 2014/7/28
thx 【 在 gaoweiwei 的大作中提到: 】 : 已经到尾部的时候再继续读就读不到东西了,x的值保持不变。回车的问题不清楚,按理说stream不会读空白字符的