簡體   English   中英

帶有枚舉的C ++ Visual Studio調試器錯誤

[英]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”,如您所見,調試器發出了奇怪的數字。

這是我輸入正確的“ planet”后調試器的圖像

我不確定我是否完全理解這個問題,但似乎您正在嘗試將枚舉(其基礎類型為整數)轉換為字符串表示形式?

如果是這樣,則可以使用查找表。 我使用std :: map並將人類可讀的消息映射到每個枚舉。 然后,您可以執行“ std :: string msg = lookup_map_.at(enum);”。

哇,我覺得很蠢。 在調試器上,我單擊“自動”而不是“本地”。 當我檢查當地人時,顯示正確的響應! 謝謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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