C++ c++;运行时问题

C++ c++;运行时问题,c++,runtime-error,C++,Runtime Error,好的,我遇到了一个问题,状态没有被添加到我设置的2d数组中(AllState)。下面是正在调用的addState函数的代码。allStates是一个10x10阵列,在此之前应为空 void addState(string stateName){ for (int row=0; row<10; row++){ for (int col=0; col<10; col++){ if (allStates[row][co

好的,我遇到了一个问题,状态没有被添加到我设置的2d数组中(AllState)。下面是正在调用的addState函数的代码。allStates是一个10x10阵列,在此之前应为空

void addState(string stateName){
        for (int row=0; row<10; row++){
            for (int col=0; col<10; col++){
                if (allStates[row][col].get_name().empty()){
                    allStates[row][col].set_values(stateName);
                    cout << allStates[row][col].get_name();
                    break;
                }
            }   
        }   
};
void addState(字符串stateName){
对于(int row=0;row stateName;

cout虽然我希望看到更多关于allstate的信息,但我可以给你另一个提示,你可能喜欢,也可能不喜欢

while(infile >> command) {
//code
}
当使用流作为条件时,它将为您检查流并返回bool以及获取您试图获取的值。它同时充当.eof()&.good()。这也是避免意外地将“\n”读入数组、列表等的好方法

allStates[row][col].get_name()

你是否对initialize allState进行了赋值?否则,我怀疑2d数组中没有对象,
allState
是如何和在哪里声明的?a
是哪个类的对象?你需要添加更多细节,正如Atilla所说,请解释。它是C数组、std::verctor等吗?编辑以回答其中的一些问题。你是否正在刷新
cout
“\n”
不保证刷新。什么类型的
命令
?如果是
字符[]
如果
将永远不会为真。非常感谢,我将编辑以添加所有状态[]的初始化我唯一能建议的是测试是否真的进入了if语句。我从来都不习惯在没有paren或empty()的情况下使用多个方法调用,虽然在大多数情况下它没有什么问题。我该怎么做呢?但是我该如何处理一个对象呢?我会只创建一个对象来分配给整个数组吗?你能发布更多关于状态的信息吗?它是一个类吗?还是键入定义它?如果我没有错,allState是字符串的2d数组?然后你可以简单地声明它为string allState[10][10];字符串是std类,因此它将调用默认构造函数。然后,数组中有onject。allState是State类型的2d数组
while(infile >> command) {
//code
}
allStates[row][col].get_name()