标准输入流的问题,兼散分

sam1111 2002-10-28 12:45:41
偶尔看到C++ Primer上的一段代码,觉得奇怪,试了一下,果然得不到书上的结果:

#include <iostream>
#include <string>
using namespace std;

int main()
{
string word;
while ( cin >> word )
cout << "word read is: " << word << '\n';
cout << "ok: no more words to read: bye!\n";
return 0;
}

输入:riverrun, past Eve and Adam's

书上的结果:
word read is: riverrun,
word read is: past
word read is: Eve
word read is: and
word read is: Adam's
word read is: ok: no more words to read: bye!

我的结果:
word read is: riverrun,
word read is: pass
word read is: Eve
word read is: and
word read is: Adam's
程序未结束。

我在VC.NET和gcc3.0上试了,均得到相同的结果,是这两个编译器与标准不符吗?

好久没来了,散分。
...全文
87 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
北极猩猩 2002-10-30
  • 打赏
  • 举报
回复
在最后加一个ctrl+z
这将插入一个EOF文件结束符,读到这里流将设置fail状态,此时
cin经void *转换后为0所以循环结束
sam1111 2002-10-30
  • 打赏
  • 举报
回复
CSDN现在怎么搞得,昨天下午怎么也连不上。
结贴了。
hehe214 2002-10-30
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
using namespace std;

int main()
{
string word;
while ( cin >> word )
cout << "word read is: " << word << '\n';
cout << "ok: no more words to read: bye!\n";
return 0;
}
mrbeaver 2002-10-30
  • 打赏
  • 举报
回复
需输入终结符才能中止输入
Ctrl+Z
Kuye2002yx 2002-10-30
  • 打赏
  • 举报
回复
收点分 :P
程序的色彩 2002-10-30
  • 打赏
  • 举报
回复
散分,我接!
chanet 2002-10-30
  • 打赏
  • 举报
回复
up
justlikearose 2002-10-29
  • 打赏
  • 举报
回复
输出word read is: Adam's后加两个ctrl+z才可输出
word read is: ok: no more words to read: bye!
为什么呢?
tomatopj 2002-10-29
  • 打赏
  • 举报
回复
输出结束后再输入ctrl+z回车,就行了
sam1111 2002-10-29
  • 打赏
  • 举报
回复
下午结贴
sam1111 2002-10-29
  • 打赏
  • 举报
回复
看来不是与标准不符,而是需要输入结束标志。

我当时看到这段代码的时候就觉得很奇怪,如果没有特殊的标志,它怎么判断用户的输入结束了呢?
lkcowboy 2002-10-29
  • 打赏
  • 举报
回复
Ctrl + Z是dos系统的输入结束符
sjf331 2002-10-28
  • 打赏
  • 举报
回复
在输入的最后加上一个空格就对了。要不while不结束
earthharp 2002-10-28
  • 打赏
  • 举报
回复
Ctrl + Z
kxw 2002-10-28
  • 打赏
  • 举报
回复
应该看看operator>>是怎么实现的,它可能是接受任何键盘输入,也可能有个默认符可以终止。
sam1111 2002-10-28
  • 打赏
  • 举报
回复
加多少个空格也没用,
while循环根本就不结束。

我所说的就是这个问题,按照书上的结果和其iostream Library一章所说的,cin在读到结尾或者出错时的值相当于false,可是据我观察,cin始终是一个地址。我只是想知道,是目前的编译器与C++标准不相符吗?

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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