如何接受字符串中包含空格的字符串向量

How to accept a vector of strings where strings have spaces in them

本文关键字:字符串 向量 空格 何接受 包含      更新时间:2023-10-16

我的代码

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){
    int s;
    cin>>s;
    vector<string> v(s);
    for(int i=0;i<s;i++){
        getline(cin,v[i]);
    }
    cout<<v[1]<<endl;
    return 0;
}

我想接受一个字符串数组,其中字符串中有空格。上面的程序不起作用,因为它在循环结束之前终止,而不是向量中的第二个字符串,而不是向量中的第二个字符串v[1]无论int s的值是多少,它都会首先打印v[0]

谁能解释为什么会发生这种情况,我如何正确接受带有空格的字符串数组?

在每个getline语句之前使用 cin.ignore(INTEGER_MAX, 'n'); 来清除 cin 缓冲区。