在getline之后用c ++输入

时间:2017-11-11 21:00:59

标签: c++ cin getline

在使用getline后,我在使用C ++进行输入时遇到了一些问题。以下是一段代码:

    cin>>n;

    vector<string>v(n);
    string s, type;
    bool reversed;

    getline(cin, s);

    for(int i=0;i<n;i++) {
        getline(cin, s);
        v[i]=s;
    }

    cin>>key;
    cin>>reversed;
    cin>>type;

以下输入 -

3
92 022
82 12
77 13
2 true digital

我需要的是以下行作为带空格的字符串 -

92 022
82 12
77 13

我能够,但reverse的值始终为0,类型始终为空。请帮助我在输入时做错了什么?

我还必须在for循环之前使用getline一次来获取&#34; n&#34;串正确。如何避免?

1 个答案:

答案 0 :(得分:2)

除非您设置boolalpha标记,否则cin >> bool需要01

要使用文字"true" / "false",请设置boolapha,如下所示:

  cin >> boolalpha >> reversed;