问题是这样的: int main() { int n; cin>>n; string str[100]; for(int i=0;i<n;i++) { getline(cin,str[i]); } for(int i=0;i<n;i++) { cout<<str[i]; } } 如果n的输入为2;那么在程序中的for循环只会执行1次,若for循环n的输入为3则只会执行2次,如下图(以n=2为例) 问题出现的原因 问题处在了换行符上,getline()函数的结束是遇到换行符结束,在输入n结束后为了换行再次输入会敲一个回车(相当于一个换行符),这