Fro*_*her -1 c++ arrays for-loop cin
我想要的是在用户在数组中插入名称时保持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];
}
}
}
Run Code Online (Sandbox Code Playgroud)
首先,这个术语不是"圆圈",而是"循环",你有一个"for循环".
其次,您声明nomes尝试声明一个大小为零的数组.这在普通的C++中是不允许的,应该给你一个编译错误.然而,它是某些编译器的扩展.问题在于,当您尝试分配此零大小数组中的条目时,您会有未定义的行为,因为所有赋值都将在数组边界外写入.
第三,阵列从零到size-1个索引,所以要么你必须改变你的for循环,从数0到i< numpessoas,或者你必须使用i - 1索引数组时.
您也使用错误的运算符作为输入,<<是输出运算符.由于您使用了错误的运算符(您没有收到错误或至少出现此错误的警告?)循环不会停止等待输入.
由于您使用C++编程,我强烈建议您使用std::vector.