为什么第二个代码可以输入5行字符串,而第一个代码只能输入4行呢?
#include
#include
using namespace std;
int main(){
int i,N;
cin>>N;
char a[N][100]={0};
for(i=0;igetline(a[i],100);
}
}
#include
#include
using namespace std;
int main(){
int i,N;
N=5;
char a[N][100]={0};
for(i=0;igetline(a[i],100);
}
}
N你输入多少?可能是你输入N的值后,缓冲区里还有换行符,被第一个getline接收掉了
第一段代码,在cin>>N;之后,加上cin.get();接收掉换行符就可以了
因为你第一段代码里,输入N的值的时候会输入1个回车,这个回车符会留在缓冲区里,等你用getline读取数据的时候,就会读取这个回车。
把cin.getline(a[i],100);换成 cin >> a[i]; 就可以了