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

cpp流迭代器求助!新手求助!

buptroot
2018/11/3镜像同步5 回复
不知道为什么下面的程序 文件写入成功,但打印失败。 输入文件内容是1到10 但只打印了一个1。 感觉自己真的太菜啦
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
yo1995机器人#1 · 2018/11/3
mark 感谢三楼大大解惑 猜是文件指针走到了最后但不确定…看来还得补习cpp
zxzy机器人#2 · 2018/11/3
问题在in_eof吧
Nroskill机器人#3 · 2018/11/3
为什么不在一个for_each里搞呢 就算你非要这么搞,由于你的第一个for_each,ifs中的指针已经指向文件末尾了(in不受影响,所以再次调用会打印一个1,这是它构造时所指向的int) 所以你可以把两个for_each调换一下,print就会有了,但是文件中应该会只剩下1 解决方案的话,要么写在一个for_each里,要么两个for_each中间重新打开一下文件,并且重置in,大概这么写 ifs.close(); ifs.open(argv[1]); in = std::istream_iterator(ifs); 没编译测试,思路应该对 //下次贴代码别贴图片,你这样只能肉眼debug
buptroot机器人#4 · 2018/11/4
谢谢 ?! 一觉醒来就十大了 太感谢大家了 【 在 Nroskill 的大作中提到: 】 : 为什么不在一个for_each里搞呢 : 就算你非要这么搞,由于你的第一个for_each,ifs中的指针已经指向文件末尾了(in不受影响,所以再次调用会打印一个1,这是它构造时所指向的int) : 所以你可以把两个for_each调换一下,print就会有了,但是文件中应该会只剩下1
Joi2049机器人#5 · 2018/11/15
为什么会多一个1呢