istream_iterator输入流结束问题

image_trans 2007-11-08 09:56:02
请看如下来自书《The C++ Standard Libray》代码:
//从标准输入读取所有输入文字\排序\将它们打印于屏幕
//stl/ioiter1.cpp

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;

int main()
{
vector<string> coll;

/*read all words from the standard input
*- source: all strings until end-of-file(or error)
*- destination: coll (inserting)
*/
copy (istream_iterator<string>(cin), //start of source
istream_iterator<string>(), //end of source
back_inserter(coll)); //destination

//sort elements
sort (coll.begin(), coll.end());

/*print all elements without duplicates
*- source: coll
*- destination: standard output (with newline between elements)
*/
unique_copy(coll.begin(), coll.end(), //source
ostream_iterator<string>(cout, "\n")); //destination
system("pause");
}

为什么要用两次ctrl Z再加回车来结束输入流?
当我连续输入两个相同的字符,比如'x','x'时,再按回车,为什么就直接结束程序了,后面的sort()等都没有执行?
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2007-11-10
  • 打赏
  • 举报
回复
换个编译器吧~~~
hldc 2007-11-10
  • 打赏
  • 举报
回复
我的是Dev 4.9.9.2,没有楼主说的那种情况呀,你换个版本试试
image_trans 2007-11-10
  • 打赏
  • 举报
回复
发现dev这个编译器也有很大的问题啊, 今天用VS2005上编译运行就完全没有上面出现过的问题了. 晕...
image_trans 2007-11-08
  • 打赏
  • 举报
回复
是不是编译器的问题?我用的是dev的.
还有第二个问题呢:如果连续输入两个相同的字符, 回车后为什么就退出程序了?
  • 打赏
  • 举报
回复
不会啊,我这里就是一次就可以了

64,662

社区成员

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

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