簡體   English   中英

c ++運行時問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM