输入多个字符串数组

时间:2013-10-28 03:07:50

标签: multidimensional-array arrays

我只是在学习数组,而我的书几乎没有解释如何输入二维字符串数组。这是我的书推荐的代码:

char lastName[6][50];

for(int i = 0; i < 5; i++)
{
  cout << "Enter candidates last name: ";
  cin.get(lastName[i], 50);
  cout << endl;
}


for(int j = 0; j < 5; j++)
{
  cout << lastName[i] << endl;
}

使用此代码我只能输入一个名称,其余程序只重复“输入候选人的姓氏:”

我尝试的其他代码是:

for(int i = 0; i < 5; i++)
{
 cout << "Enter candidates last name: ";
 cin >> lastName[i][50];
 cin.get(lastName[i], 50);
 cout << endl;
}

Same output code

此代码允许我输入正确数量的名称,但缺少每个名称的第一个字符。示例“Joe”给了我“oe”

再次,我是初学者,我不明白为什么它不能正常工作。谢谢!

1 个答案:

答案 0 :(得分:1)

问题在于混合cingetline。格式化输入(使用&gt;&gt;运算符)和无格式输入(getline是一个示例)不能很好地一起使用。你一定要仔细阅读它。 Click here for more explanation

以下是您的问题的解决方案。 cin.ignore(1024, '\n');是关键。

char lastName[6][50];
for(int i = 0; i < 5; i++)
{
    cout << "Enter candidates last name: ";
    cin.get(lastName[i], 50);
    cin.ignore(1024, '\n');
}
for(int j = 0; j < 5; j++)
{
    cout << lastName[j] << endl;
}