| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1360 人关注过本帖
标题:cin getline输入问题
只看楼主 加入收藏
kspliusa
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:98
专家分:178
注 册:2009-9-27
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:4 
cin getline输入问题
大家好,我想问一个问题。就是
#include <iostream>
#include <cstring>

using namespace std;

struct datas{
    string name;
    double diameter;
    double weight;
};

int main()
{
    datas *pn = new datas;

    cout<<"Enter the diameter of the pizza:\n";
    cin>>pn->diameter;
   
    cout <<"Enter the name:\n";
    getline(cin,pn->name);

    cout <<"Enter the weight of the pizza:\n";
    cin>>pn->weight;

    cout <<pn->name<<"\n"<<pn->diameter<<"\n"<<pn->weight<<endl;
    delete pn;
    return 0;
}
这个程序为什么不能在输入diameter后不等待输入name而直接就出现Enter the name:Enter the weight of the pizza麻烦哪位高手帮帮我!!先谢谢了!
搜索更多相关主题的帖子: 输入 getline cin 
2009-09-27 16:12
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
收藏
得分:10 
回复 楼主 kspliusa
  get与getline区别不是很大,但一个明显的区别是get遇到'\n'字符后便返回,这是'\n'还在缓冲区中,所以下次读出来的将是'\n',而getline遇到'\n'也返回,但它会把'\n'从缓冲区里移除掉  
  所以很多时候用getline方便些   

java群
62635216
欢迎加入
2009-09-27 17:39
kspliusa
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:98
专家分:178
注 册:2009-9-27
收藏
得分:0 
回复 2楼 pywepe
谢谢啊!!可是为什么我上面的程序输入的时候出了问题啊,帮我看看吧!!
2009-09-27 18:16
gz81
Rank: 5Rank: 5
等 级:职业侠客
帖 子:137
专家分:369
注 册:2008-5-1
收藏
得分:10 
在getline(cin,pn->name);前面加一句cin.ignore();即可。

不要问我为什么,我觉得google或baidu会比我说得更清楚。:)

[ 本帖最后由 gz81 于 2009-9-27 19:59 编辑 ]

我的空间:http://student./space.php?uid=116706
2009-09-27 19:22
kspliusa
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:98
专家分:178
注 册:2009-9-27
收藏
得分:0 
回复 4楼 gz81
呵呵,好的,不过还是非常感谢指教!!
2009-09-28 15:35
快速回复:cin getline输入问题
数据加载中...
 
   



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

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