zoukankan      html  css  js  c++  java
  • 输入字符串先用cin后用getline函数失效原因

    string str,sentence;
    cin >> str;
    getline(cin, sentence);
    cout << str << " "<< sentence << " ";

    以上代码定义两个字符串,分别想要为其赋值为"hello"  "hello world",但是运行后仅仅能输入hello 回车 就结束了

    猜测原因应该是getline是从缓冲区的 开始读,而getline函数又是以读到 为结束,所以导致失败

    正确读入多个字符串且字符串含有空格的方法是:

    string str,sentence;
    getline(cin, str);
    getline(cin, sentence);
    cout << str << " "<< sentence << " ";

    直接使用多个getline函数,我人傻了。。。

    至于这时候为什么第二个getline不受回车影响我猜测是:getline读到换行后虽然结束读取,但换行应该是已经读入了,只是最后去掉了,所以下一个getline是从换行的后一个开始读。

    cin和getline函数的简单区别:cin遇到(回车,空格,tab)就结束读取,而getline遇到换行结束读取

  • 相关阅读:
    debug和release转载
    坐标系与基本图元(8)
    坐标系与基本图元(7)
    坐标系与基本图元(5)
    坐标系与基本图元(6)
    坐标系与基本图元(4)
    坐标系与基本图元(3)
    坐标系与基本图元(2)
    BZOJ 1090
    Xor
  • 原文地址:https://www.cnblogs.com/hqdong123/p/13645245.html
Copyright © 2011-2022 走看看