注册 登录
编程论坛 C++教室

请各位大侠指教~~个问题

lhtcanow 发布于 2010-08-23 20:22, 510 次点击
程序代码:
#include <iostream>
#include <string>

using namespace std;
int main()
{
    string s;
    while(getline(cin,s))
        cout<<s<<endl;
    return 0;
}
为什么两个回车以后才输出之前输入的字符串?
4 回复
#2
xishui7772010-08-23 20:50
没什么问题。
#3
holychild2010-08-24 22:51
因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成 getline(cin,st,'s'); 即使输入的是abcsabc 那么也只会显示 abc ,因为getline默认情况下以回车('\n')作为结束符,第一次按回车才能够表示字符串结束。
#4
pangding2010-08-25 00:25
这是 vc6.0 的 bug。不久前我还在一个置顶的帖子里提来着。果然又有人问了~~
网上搜一下,就能找到解决方法:
http://hi.baidu.com/linan/blog/item/d0c09123107bb341ad34dea7.html
#5
lhtcanow2010-08-25 19:56
谢谢了,讲的很明白。。
1