标题:getline()的困惑,请高手指点!
取消只看楼主
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
结帖率:100%
已结贴  问题点数:20 回复次数:3 
getline()的困惑,请高手指点!
程序就是书中的如下:
程序代码:
#include <iostream>
#include <string>

using namespace std;

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

运行后结果如下:
1111
222
1111
33333
222
4444
33333

结果为什么不是:
1111
1111
222
222
33333
33333

请高人指点!

2013-10-03 15:30
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
得分:0 
问题是cin只能读取单个单词,要实现整句读取该怎么做?
2013-10-03 19:30
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
得分:0 
cin 一次只能读入一个单词,形如:The sum of 3 and 7 is 10.要8次才能完成。
如用getline 只要一次就读入到一个string对象中。
程序如下:
程序代码:
#include <iostream>
#include <string>

using namespace std;

int main( )
{
    int i=0;
    string s;
    cout<<"这里是用cin:"<<endl;
    while(i!=8)
    {
        cin>>s;
        i++;
        cout<<i<<" "<<s<<endl;
    }
    i=0;
    cout<<"这里是用getline:"<<endl;
    while(getline(cin,s))
    {
        i++;
        cout<<i<<" "<<s<<endl;
    }
return 0;
}


[ 本帖最后由 heroinearth 于 2013-10-5 08:39 编辑 ]
2013-10-05 08:23
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
得分:0 
问题已经找到,是VC6.0的问题,现换成2005版本。
2013-10-06 00:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-421406-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.152530 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved