我知道我的问题并不具体,但让我解释一下这段代码
char name[5][30];
for (int i = 0; i < 5; i++)
cin >> name[i];
for (int i = 0; i < 5; i++)
cout<<name[i];
在上面的示例中,我创建了一个字符数组,您可以在其中输入五个字,每个字长度为30位。它工作得很好,但当我不知道你要输入多少单词时,我尝试使用这样的指针。我在第5行得到一个错误,说int类型的值不能被赋予char,我理解错误但是如何通过这个问题?
int n;
cout << "Number of names" << endl;
cin >> n;
int *name;
name = new char[n][30];
for (int i = 0; i < 5; i++){
cin >> *name;
name++;
}
for (int i = 0; i < 5; i++){
cout << *name;
name++;
}
答案 0 :(得分:3)
char
,而不是int
。name
似乎不太好主意,因为它必须在打印前返回到第一个元素。我使用了数组索引操作符。n
输入&amp;应该输出而不是固定的5
输入&amp;输出。 int n;
cout << "Number of names" << endl;
cin >> n;
char (*name)[30];
name = new char[n][30];
for (int i = 0; i < n; i++){
cin >> name[i];
}
for (int i = 0; i < n; i++){
cout << name[i];
}
delete[] name;