需要输入n行带有空格的string字符串。但是还没输入完,程序就结束了。
进行输入的代码片段如下:
int n;
cin>>n;
string s[n];
for(int i=0;i<n;i++)
{
getline(cin,s[i]);
}
然后就出现了以下情况:
请问这是为什么?如何解决呢?
需要输入n行带有空格的string字符串。但是还没输入完,程序就结束了。
进行输入的代码片段如下:
int n;
cin>>n;
string s[n];
for(int i=0;i<n;i++)
{
getline(cin,s[i]);
}
然后就出现了以下情况:
请问这是为什么?如何解决呢?
在cin>>n后,加一句getchar(),接收输入3之后的换行符。因为输入3后面的换行符还在输入缓冲区,getline遇到换行符就认为是一行,所以你看着只输入两行字符串,但实际getline已接收完3行了