开发者社区> 问答> 正文

c++中cin,cin.getline()中换行符问题

代码1、 int a;
cin>>a;
char b[10];
cin>>b;
代码2、 int a;
cin>>a;
char b[10];
cin.getline(b,10);
我看书上说cin 见到换行符结束然后换行符留在了输入序列中,那为什么为什么代码1不会出现问题,而代码2会出现问题?

展开
收起
a123456678 2016-03-04 17:48:05 3565 0
1 条回答
写回答
取消 提交回答
  • 原因很简单,因为cin自动把enter忽略了,而cin.getline不行,因为默认是遇到'n'就结束读入,您可以尝试这样:
    void main()
    {
    int a ;
    (cin >> a).get();//把遗留下来的'/n'去掉。
    char b[10];
    cin.getline(b,10);
    cout << a << endl
    << b << endl;
    }

    2019-07-17 18:52:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载