| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 628 人关注过本帖
标题:还是关于getline()
只看楼主 加入收藏
Cmoniker
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2010-3-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
还是关于getline()
由于对getline()函数一直不解,在论坛里找了个关于getline()例子 稍微改了改  结果又出问题了
#include<iostream>
using namespace std;
int main()
{
    char mystr[100];
    int n,i;
    cin>>n;
    for(i=0;i<n;i++)
    {
    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;
}
例如:
先输入1付给n;
然后它就直接输出:
what's your name?
what is your favorite color?
这两句连着输出了  为什么呀?

搜索更多相关主题的帖子: getline 
2010-05-10 22:06
Cmoniker
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2010-3-27
收藏
得分:0 
  希望高手不吝赐教!
2010-05-10 22:30
mghxz252
Rank: 2
等 级:论坛游民
帖 子:40
专家分:60
注 册:2010-1-18
收藏
得分:0 
我的也是这样,不明白!!!!!!
2010-05-11 00:53
yc2575757
Rank: 7Rank: 7Rank: 7
来 自:北京
等 级:黑侠
威 望:1
帖 子:113
专家分:522
注 册:2010-5-7
收藏
得分:6 
#include<iostream>
using namespace std;
int main()
{
    char mystr[100];
    int n,i;
    n = 0;
    cin>>n;
    for(i=0;i<n;i++)
    {
    cout<<"what's your name? ";
    getchar();//这里接收那个回车符号!!
    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;
}
2010-05-11 10:24
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:14 
cin.getline()会将回车的换行符作为输入的结束。并用空值字符替换换行符,因此对下一次使用cin.getline()不会有影响。但是你while循环里面最后又个cin>>i;
那么当这次循环完,下一次循环用cin。getline()会读取上一次的输入完i后的换行符。解决这一问题的方法,就是用cin。get()读取换行符(enter),然后用cin。getline。
程序代码:
#include <iostream>
using namespace std;
int main()
{
    
    int n;
    //cin>>n;
        //cin.get();
    char a[20];
    
    cin.getline(a,20);
    cout<<a; 
    return 0;
}
注意看有无引去代码的区别
2010-05-11 10:38
Cmoniker
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2010-3-27
收藏
得分:0 
谢谢 我明白了 我加了个getchar()  发现也能解决问题!
2010-05-11 22:56
快速回复:还是关于getline()
数据加载中...
 
   



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

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