istream_iterator小问题

Mynameiswuyihao 2010-08-26 12:19:04
书上说
copy(istream_iterator<int,char>(cin),istream_iterator<int,char>(),dice.begin());

使用构造函数参数cin意味着使用由cin管理的输入流,省略构造函数参数表示输入失败,因此上述代码从输入流中读取,直到文件尾、类型不匹配或出现其他输入故障为止。

文件尾我理解得了,但是我不明白如果cin失败了,failbit被设置为true,但是不会影响到第二个参数吧,我觉得第一个和第二个是两个独立不相干的迭代器嘛。搞不懂了
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mynameiswuyihao 2010-08-26
  • 打赏
  • 举报
回复
如果光是超尾,也可以是fin的eof,没有说明是cin,怎么知道是cin的超尾?
Mynameiswuyihao 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lhcwjy 的回复:]

就是这么规定的
[/Quote]

总觉得没对,istream_iterator<int,char>()没有指出cin,又怎么会是坏cin?
白云飘飘飘 2010-08-26
  • 打赏
  • 举报
回复
就是这么规定的
Mynameiswuyihao 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lhcwjy 的回复:]

istream_iterator<int,char>(),代表[begin,end)中的end.
[/Quote]

为什么?默认构造函数这样定义的?end就是坏cin?
白云飘飘飘 2010-08-26
  • 打赏
  • 举报
回复
istream_iterator<int,char>(),代表[begin,end)中的end.
ForestDB 2010-08-26
  • 打赏
  • 举报
回复
顶LS各位了,就是这样定义end的。
pengzhixi 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mynameiswuyihao 的回复:]
我懂了,是当istream_iterator<int,char>(cin)出错时,就返回超尾是吧?
[/Quote]

出错了就没办法再输入了。

Mynameiswuyihao 2010-08-26
  • 打赏
  • 举报
回复
我懂了,是当istream_iterator<int,char>(cin)出错时,就返回超尾是吧?

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧