我想要的是在用户在数组中插入名称时按住FOR圈。
#include <iostream>
using namespace std;
char nomes[]={};
int numpessoas;
int main() {
cout << "Quantas pessoas queres registar?\n";
pede:
cin >> numpessoas;
if (numpessoas < 1) {
goto pede;
}
else {
for (int i = 1; i<= numpessoas; i++){
cout << i << "º nome\n";
cin << nomes[i];
}
}
}
答案 0 :(得分:7)
首先,这个词不是“圆圈”,而是“循环”,你有一个“for循环”。
其次,你的nomes
声明尝试声明一个大小为零的数组。这在普通的C ++中是不允许的,应该给你一个编译错误。然而,它是某些编译器的扩展。问题在于,当您尝试分配此零大小数组中的条目时,您会有未定义的行为,因为所有赋值都将在数组边界之外写入。
第三,数组的索引从零到大小为1,因此您必须将for
循环更改为从0
更改为i< numpessoas
,否则您必须使用{{ 1)}索引数组时。
您也使用错误的运算符输入,i - 1
是输出运算符。由于您使用了错误的运算符(您没有收到错误或至少出现此错误的警告?)循环不会停止等待输入。
由于您使用C ++编程,我强烈建议您改为使用std::vector
。