不太清楚,我觉得可能是VC 6不严格遵守标准的原因,有些书上的例子根本运行不对。
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编辑过]
ctrl+z 回车再ctrl+z 回车退出
[此贴子已经被作者于2007-5-9 20:32:10编辑过]
谢谢大家的回复9楼的可以说说为什么需要两次ctrl+z吗?(而且还得两次ctrl+z回车操作相邻才行?)
[此贴子已经被作者于2007-5-9 22:05:21编辑过]
我是这样理解的,但是不知道对不对。因为是提取string的值,所以ctrl+z会被首先判断为字符串,再加上一个ctrl+z就可以表示想输入的确实是文件终止符。纯属猜想,呵呵。