如何暂停for循环(循环)以在Array中插入一些值?

时间:2014-01-09 12:51:01

标签: 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];
        }
    }
}

1 个答案:

答案 0 :(得分:7)

首先,这个词不是“圆圈”,而是“循环”,你有一个“for循环”。

其次,你的nomes声明尝试声明一个大小为零的数组。这在普通的C ++中是不允许的,应该给你一个编译错误。然而,它是某些编译器的扩展。问题在于,当您尝试分配此零大小数组中的条目时,您会有未定义的行为,因为所有赋值都将在数组边界之外写入。

第三,数组的索引从零到大小为1,因此您必须将for循环更改为从0更改为i< numpessoas,否则您必须使用{{ 1)}索引数组时。

您也使用错误的运算符输入,i - 1输出运算符。由于您使用了错误的运算符(您没有收到错误或至少出现此错误的警告?)循环不会停止等待输入。


由于您使用C ++编程,我强烈建议您改为使用std::vector