RaspberryMonster
南屏山敲钟人
采纳率61.3%
2015-10-10 08:21 阅读 3.5k

关于两次使用getline()只能输入一次的问题

用了两次getline()函数 调试的时候发现第一次根本没有接受输入直接返回ming字串为“”
而第二次可以输入一行字串以回车结束 是为什么呢??

 while (cin >> choice){
        if (choice == 1){
            cout << "输入明文:\n";
            string ming;
            getline(cin, ming);
            cin.sync();
            cout << "输入密文:\n";
            string mi;
            cin.sync();
            getline(cin, mi);       
            string str = miyao(ming, mi);
            cout << "求出的密钥为:\n";
            printstr(str);
        }
        ……
        }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2015-10-10 11:27

    cin >> choice之后还有一个回车在缓冲区中。

    点赞 2 评论 复制链接分享
  • m_bgr _BinaryTree 2015-10-10 14:33

    楼上说的很对,可以试试cin.ignore()语句清空缓冲区

    点赞 1 评论 复制链接分享

相关推荐