[英]C++ Visual Studio Debugger Error with Enumeration
我正在構建一個牛與牛游戲(必須通過命令提示符猜測一個字)我在Microsoft Visual Studio 2017中遇到問題,我正在使用一個枚舉檢查輸入錯誤。應該被認為是像Word_Length這樣的調試器中的錯誤,或者如果確定,則應該顯示OK。 然后,當我運行調試器時,不顯示諸如OK或Word_Length之類的消息,而是顯示一些數字。
我可以做錯什么嗎? 還是對VS。我覺得很奇怪,因為我正在與C ++課程一起做這件事,因此代碼應該沒問題。 謝謝你的幫助!
- 碼 - - - -
這是我聲明枚舉的地方
enum class EGuessStatus
{
OK,
Not_Isogram,
Wrong_Length,
Not_Lowercase
};
這里我說如果單詞長度不正確,返回錯誤
else if (Guess.length() != GetHiddenWordLength()) //if the word length is
//wrong, return an error
{
return EGuessStatus::Wrong_Length;
}
然后我說,如果猜測正確,請返回確定
else { //otherwise, return ok
return EGuessStatus::OK;
}
這是在main.cpp中,然后將其標記為要調試。
EGuessStatus Status = BCGame.checkGuessValidity(Guess);
在這種情況下,單詞是“ planet”,如您所見,調試器發出了奇怪的數字。
我不確定我是否完全理解這個問題,但似乎您正在嘗試將枚舉(其基礎類型為整數)轉換為字符串表示形式?
如果是這樣,則可以使用查找表。 我使用std :: map並將人類可讀的消息映射到每個枚舉。 然后,您可以執行“ std :: string msg = lookup_map_.at(enum);”。
哇,我覺得很蠢。 在調試器上,我單擊“自動”而不是“本地”。 當我檢查當地人時,顯示正確的響應! 謝謝您的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.