【发布时间】:2017-07-28 14:31:57
【问题描述】:
我正在构建一个公牛和奶牛游戏(必须通过命令提示符猜测单词)我在 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;
}
然后我说如果 Guess 没问题,就返回 OK
else { //otherwise, return ok
return EGuessStatus::OK;
}
它位于 main.cpp 中,然后我将其标记为调试。
EGuessStatus Status = BCGame.checkGuessValidity(Guess);
在这种情况下,单词是“行星”,如您所见,调试器会喷出奇怪的数字。
This is an image of the debugger once I input 'planet' which is supposed to be correct
【问题讨论】:
-
在您截屏的那一刻,Status 尚未初始化,因为调试器通常会突出显示要执行的 next 语句。按下一条语句并再次检查。如果问题仍然存在,请编辑您的问题。
-
这不是一个“奇怪的数字”,而是
0x'CCCC'CCCC。 MSVC 调试版本中的典型未初始化值。 -
@MSalters 那么这对我的代码意味着什么?
-
@iMarioOfficial:好吧,正如 patatahooligan 指出的那样,您在定义
Status的那一刻拍摄了一张照片,但尚未初始化(因为您已经在那里停止了执行)。所以持有0xCCCCCCCCC的未初始化变量一点也不奇怪。 -
@MSalters 哦,好吧,我明白你在说什么,但现在我把红点的东西(大声笑)放在 Status 之后,它根本无法运行。
标签: c++ visual-studio debugging