有关primer中的一个小问题
在primer中有一段程序提到:
while(cin >> word)
cout << "word is :" << word <<endl;
cout << "END!";
但是我按它的编译后的程序,无法到达cout << "END!";
可以正确输出我所输入的句子但是就是无法到达“END”。
请教为什么?十分感谢!
问题点数:10、回复次数:14Top
1 楼kobefly(科比--网络学习中)回复于 2005-04-02 21:36:32 得分 10
输入
ctr+z
Top
2 楼lvyuetian(我的一生)回复于 2005-04-02 21:52:41 得分 0
在命令行下面按
ctr+z吗?
我刚才试了一下,好像也不行啊!
Top
3 楼lvyuetian(我的一生)回复于 2005-04-02 22:09:08 得分 0
kodefly:
能否具体的描述一下,谢谢!Top
4 楼lvyuetian(我的一生)回复于 2005-04-02 22:10:05 得分 0
呜呜,哪位高人过来帮小弟一下啊,万分感谢!Top
5 楼calories(努力中...)回复于 2005-04-02 22:11:36 得分 0
当然到不了最后一句了,循环体只包含第一个cout啊Top
6 楼calories(努力中...)回复于 2005-04-02 22:25:55 得分 0
循环体结束的条件是cin为 false,引用c++ primer 3rd中的话如下(有删节):
表达式
while ( cin >> ival )
从标准输入读入一个序列,直到cin为false为止。有两种情况会使一个istream 对象被计算为false: 读到文件结束(在这种情况下我们已经正确地读完文件中所有的值)或遇到一个无效的值。在读入一个无效值的情况下istream 对象被放置到一种错误的状态中,并且对于值的所有读入动作都将停止。
Top
7 楼kobefly(科比--网络学习中)回复于 2005-04-02 22:30:59 得分 0
ctr+z
然后回车
然后回车就可以了Top
8 楼lvyuetian(我的一生)回复于 2005-04-02 22:46:44 得分 0
我想实现的是第一种情况啊
在输入句子结束时让它自动跳出,不可以这样吗?Top
9 楼lvyuetian(我的一生)回复于 2005-04-02 22:51:44 得分 0
/*制做一个程序测试VC是否能够工作*/
#include <iostream>
#include <string>
using namespace std;
main()
{
cout<<"Waiting for input!"<<endl;
string word;
while (cin >> word)
{
cout<<"The word you input is : "<<word<<'\n';
}
cout << "ok: no more words to read: bye!"<<endl;
return 0;
}Top
10 楼lvyuetian(我的一生)回复于 2005-04-02 23:02:02 得分 0
这是primer书上的原样我没有经过修改,但还是不行,Top
11 楼nodummy(三甲 之 Linux/Unix里面甭给我分,谁给我分我和谁急)回复于 2005-04-02 23:22:22 得分 0
在Unix里面用Ctrl+D试试看……Top
12 楼lvyuetian(我的一生)回复于 2005-04-02 23:53:46 得分 0
还是不行,程序有错误吗?Top
13 楼lvyuetian(我的一生)回复于 2005-04-02 23:57:10 得分 0
谢谢kobefly,结束!Top
14 楼panwai(问多。。~~)回复于 2005-04-03 00:02:09 得分 0
我试了下,在dev c++里ctrl+z可以,但怎样才能不用ctrl+z也能跳出来呢Top




