[英]c++ runtime issues
好吧,所以我遇到了一個問題,即狀態沒有被添加到我設置的2d數組中(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類中初始化,包含所有這些函數。
EDIT2:
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函數,我不確定其他函數是否存在任何問題。
allStates[row][col].get_name()
你是否重視初始化allState? 否則,我懷疑2d數組中沒有對象
雖然我希望在allstate上看到更多信息,但我可以給你另一個你可能會或可能不會喜歡的提示。
while(infile >> command) {
//code
}
當使用流作為條件時,它將為您檢查流並返回bool以及獲取您嘗試抓取的值。 它充當.eof()&&。good()。 這也是避免將'\\ n'讀入數組,列表等的好方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.