关于getline

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:56:44
程序段如下
int n;

cin>>n;
char **a = new char*[n]; //第一维,

for( int i=0; i<n; i++)
{
a[i] = new char[256]; //分配第二维,每一行的空间。
cin.getline(a[i], 256);
}

为什么当我输入n为3的时候,只能输两行进去,而不是预想中的三行?

在循环语句前加一行:
cin.sync();

每行的回车符号,需要单独接收一下

int n;

cin>>n;
char **a = new char*[n]; //第一维,

for( int i=0; i<n; i++)
{
a[i] = new char[256]; //分配第二维,每一行的空间。
cin.getline(a[i], 256);
getchar();
}

我是菜鸟

自己查 cin的源代码。。