在getline之后在c ++中输入

taking input in c++ after 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

我可以,但 reversed 的值始终为 0,type 始终为空白。请帮助我在输入时做错了什么?

我还必须在 for 循环之前使用一次 getline 才能正确获取 "n" 字符串的输入。如何避免这种情况?

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

要使用文字 "true" / "false",请像这样设置 boolapha

  cin >> boolalpha >> reversed;