标题:getline在vc6.0中的一个小问题
取消只看楼主
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
结帖率:100%
已结贴  问题点数:20 回复次数:2 
getline在vc6.0中的一个小问题
下面小程序中为什么在vc++6.0中运行结果却得不到所需的结果?

#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string mystr;
  cout << "What's your name? ";
  getline (cin, mystr);
  cout << "Hello " << mystr << ".\n";
  cout << "What is your favorite color? ";
  getline (cin, mystr);
  cout << "I like " << mystr << " too!\n";
  return 0;
}


在VC++6.0运行,其结果如下:(下面黑粗体字是键盘输入的)
What's your name? Aqua  
Hello Aqua.
What is your favorite color? blue
I like too!


为什么在所需结果"I like blue too!"中会缺少"blue"?
搜索更多相关主题的帖子: getline 
2009-09-09 12:28
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
得分:0 
谢谢。

第5楼从根本上解决了此问题。第4楼说明了在此小"bug"下如何操作才能得到结果。都是高手。
2009-09-09 22:30
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
得分:0 
一般可采用cin.getline语句解决,如下:

#include<iostream.h>
 
int main()
{
    char mystr[100];
    cout<<"what's your name? ";
    cin.getline(mystr,100);
    cout<<"Hello "<<mystr<<".\n";
    cout<<"what is your favorite color? ";
    cin.getline(mystr,100);
    cout<<"I like "<<mystr<<" too!\n";
    return 0;
}
2009-09-10 16:46



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




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

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