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

关与getline

Cmoniker 发布于 2010-05-09 22:53, 606 次点击
#include<iostream>
#include<string>
using namespace std;

int main()
{
    string b;
    getline(cin,b);
    cout<<b<<endl;
   
    return 0;
}

简单测试一下getline函数 为什么我输入了之后 按两下回车才输出
比如:
welcome to here!
                     //中间多个空行  就是说多数了一下回车 为什么呀?
welcome to here!
7 回复
#2
Cmoniker2010-05-09 22:54
求版主给解答下!
#3
Cmoniker2010-05-09 23:01
我预计的结果是
输入:welcome to here!//回车
输出:welcome to here!
结果确实
输入:welcome to here!//回车
                       //再回车
输出:welcome to here!

                   为什么多输了一个回车呀!
#4
yc25757572010-05-10 10:00
getline()    接受一个字符串,可以接收空格并输出,所以getline是接收一行,第一个回车是把一行结束,第二个回车才是相应getline函数~~举个例子,比如你输入abcd,你就必须靠一个回车去断行,然后第二个回车去相应getline函数~~


[ 本帖最后由 yc2575757 于 2010-5-10 10:02 编辑 ]
#5
南国利剑2010-05-10 13:09
我也试了,一样的结果。
出现这样的结果是合理的。
楼主可以去msdn或者去百度一下getline函数的原型就知道了。
他的函数原型中就需要接受一个回车字符。
所以,需要两次回车。
第一次是结束字符串的输入,第二次是传递给getline函数接受的。

希望对楼主有帮助!
#6
2010-05-10 13:47
我用2005实验的,没有出现你说的情况啊,你用什么编译器?
#7
Cmoniker2010-05-10 20:17
VC++
#8
漩和你一起2010-11-30 00:11
为什么我用DEVc++的时候敲一下回车就输出了
1