【问题标题】:Getline() for the second line and split by space - C++Getline() 用于第二行并按空格分隔 - C++
【发布时间】:2018-02-28 23:27:06
【问题描述】:

我正在尝试解决一个需要用户多次输入的问题。我习惯了 Python,所以 C++ 语法对我来说有点复杂。

我的意思:

输入:

1

30 40 50

输出:

30 40 50

我没有找到一个单一的解决方案,我整天都在尝试找到它。

我尝试过的:

#include <iostream>
using namespace std;

int main()
{
    int input1; cin >> input1;
    string input2;
    cin >> input2;
    getline(cin, input2);
    cout << input2;
}

而且我似乎没有正确理解 getline() 方法。 我得到了什么:

输出:

 40 50

预期输出:

30 40 50

【问题讨论】:

  • 当您执行cin &gt;&gt; input2; 时,您认为会发生什么?此外,将格式化输入与 getline 混合有点棘手。
  • @CaptainGiraffe 我认为它是 Python 中的 input()
  • 第一行的“1”应该表示什么?
  • &gt;&gt; 读取输入直到出现空白字符或换行符并将其放入提供的变量中。如果你来自 Python,你应该得到一个good book,因为很难从在线教程之类的东西中学习正确的 C++
  • @FeiXiang 是啊.. 只是尝试在线学习压力很大。感谢您的建议

标签: c++ getline


【解决方案1】:

cin >> input2;

这是 30。

getline(cin, input2);

这会读取该行的其余部分。只需更改行:

cin >> input2;

为:

cin.ignore();

这样您就不会读取第二行中的第一个数字并忽略回车键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-25
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多