[求助]怎么退出这个循环?
大家帮我看看这个程序怎么退出循环,谢谢了我在VC6.0里面退不出来,按Ctrl+Z也不好使,怎么回事啊??
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
while(getline(cin,s))
cout<<s<<endl;
return 0;
}
getline(),其原型:istream &getline(char *buf,int num,char delim='\n';)
它从输入流中读取字符到buf所指的数组中,直到读满num个字符或遇到delim所指的字符为止.
那应该用什么编译器比较标准?
敲两次回车也不行,退不出循环,如果没有循环的话,敲两次回车可以正常运行getline()函数
到底是什么原因呢?
不行吧?
你给的第一个等价于
int main()
{
string s;
getline(cin,s);
cout<<s<<endl;
return 0;
}
第二个等价于
int main()
{
string s;
cin>>s;
cout<<s<<endl;
return 0;
}
[此贴子已经被作者于2007-5-9 18:28:52编辑过]
[此贴子已经被作者于2007-5-9 20:32:10编辑过]
谢谢大家的回复
9楼的可以说说为什么需要两次ctrl+z吗?(而且还得两次ctrl+z回车操作相邻才行?)
[此贴子已经被作者于2007-5-9 22:05:21编辑过]
谢谢大家的回复
9楼的可以说说为什么需要两次ctrl+z吗?(而且还得两次ctrl+z回车操作相邻才行?)
我是这样理解的,但是不知道对不对。
因为是提取string的值,所以ctrl+z会被首先判断为字符串,再加上一个ctrl+z就可以表示想输入的确实是文件终止符。纯属猜想,呵呵。