2016-11-05 105 views
0

好吧,所以當我嘗試根據用戶的輸入打印某些內容時出現錯誤。相當標準的東西,對吧?因此,如果程序能夠正常工作,用戶將輸入六個單詞或短語,這些單詞或短語將存儲在名爲PhrasesAndWords的字符串中。然後,通過創建一個while循環,使用計數器作爲switch語句中的索引,可以測試數組的每個部分。顯然,這不起作用,因爲它不是一個常量表達式,或者一個constexpr。但是,該變量不能是常量表達式,因爲這會導致無限循環。順便提一下,這裏是錯誤:C++(在Switch語句中輸入錯誤)

C:\ Users \ henry \ Desktop \ NotTheActualPathForThisProject \ main.cpp | 34 |錯誤:切換數量不是整數|這裏

AAAND是我寫的代碼(我已經擺脫了不相關的變量,例如,雖然):

int main() { 

string phrasesAndWords[6]; 

cin >> phrasesAndWords[0] >> phrasesAndWords[1] >> phrasesAndWords[2] >> phrasesAndWords[3] >> phrasesAndWords[4] >> phrasesAndWords[5]; // Recieve input 

int counter = 0; 

    while (counter < 6) { 
    switch(phrasesAndWords[counter]) { 

     case "RandomString": 
      print("That sure was quite random. \n") 
     default: 
      print("I don't understaahnd... \n") 
    }; 
    counter++; 
}; 

};

+2

'開關數量不是整數'。非常強烈的暗示,你不能在C++'switch'中使用字符串... – John3136

+0

@ John3136也許他是來自Java背景:-) –

+0

使它成爲一個矢量短語代替,並使用phrases.push_back(); – Charlie

回答

1

C++中的開關不能使用字符串。 Cosider用整數映射預期的病例。

+0

我不知道。謝謝你讓我知道:D –

0

在switch語句中使用的表達式必須具有整型或枚舉類型,或者是類類型,其中類具有單個轉換函數爲整型或枚舉類型。