有关iostream iterators 的一个问题。(30分)

doink 2002-09-01 05:57:35
我想利用 istream_iterator 输入多个字符串,然后保存到 vector型的容器中。
代码如下:

istream_iterator< string > is( cin );
istream_iterator< string > eof;

vector< string > text;
copy( is, eof, back_inserter(text) );

存在的问题:从屏幕输入字符串时陷入死循环,无法结束输入。
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huxw 2002-09-02
  • 打赏
  • 举报
回复
win32的cmd没有C-d这样的东西。当然不行了。 ;(

所谓没有输入了,相当于cin.eof(),或者干脆就是cin;这样的概念,在一般的unix控制台下面,用C-d就可以表示输入结束,或者叫关闭输入流stdin。win32的cmd不是这样的,他在打开/f的时候,C-d用来实现自动补齐。我不知道有没有别的键来表示关闭stdin。
doink 2002-09-01
  • 打赏
  • 举报
回复
leasun:
你的方法是正确的,多谢!
大佛:
在C++Builder4.0中,ctrl+D 不行。vc我没有试。
Mars:
你的说法太不明确,何谓非字符串? 似乎从键盘输入的任何东西都可看成字符串? 我试了许多乱七八糟的输入都不行。不知你有何高见? 请不吝赐教!

leasun 2002-09-01
  • 打赏
  • 举报
回复
ctrl + Z
陈硕 2002-09-01
  • 打赏
  • 举报
回复
ctrl + Z或者ctrl + D
kwok_1980 2002-09-01
  • 打赏
  • 举报
回复
或者输入其他的类型,只要不符合string类型就可以啦
kwok_1980 2002-09-01
  • 打赏
  • 举报
回复
因为你不断输入的缘故,
只要,你输入的不是一个合法的string,就可以退出。
如果是文件的话是读到文件末结束。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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