好的,所以我遇到了一个问题,即没有将状态添加到我设置的二维数组(allStates)中。下面是被调用的 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;
}
}
}
};
下面是代码中调用 addState 函数的地方。
while(!infile.eof() && infile.good()){
infile >> command;
cout << command;
if (command == "addState"){
string stateName;
infile >> stateName;
cout << "\n" << stateName;
a.addState(stateName);
cout << a.get_state(stateName).get_name();
}
}
非常感谢任何提示!
编辑:
a 是一个类型 Area,它包含所有的函数,包括 addState、deleteState 等。我收到一个错误,说没有对象我无法调用这些函数,所以我创建了一个变量来允许它。
allStates 在 Area 类中使用所有这些函数进行初始化。
编辑2:
class Area{
State allStates[10][10];
public:
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;
}
}
}
};
State get_state(string name){
for (int row=0; row<10; row++){
for (int col=0; col<10; col++){
if (allStates[row][col].get_name() == name)
return allStates[row][col];
}
}
};
void deleteState(string name){
for (int row=0; row<10; row++){
for (int col=0; col<10; col++){
string newest;
newest.clear();
if (allStates[row][col].get_name() == name)
allStates[row][col].set_values(newest);
}
}
};
};
类中还有一些函数,但由于首先调用了 addState 函数,我不确定其他函数是否存在任何问题。