CPP中无明显原因的奇怪输出 我对Python和java非常精通,所以我决定尝试C++。我决定做一个刽子手游戏,但是当第一次猜错的时候,我得到了一个非常奇怪的输出。如果第一次猜测是正确的,那么之后的每一次猜测都可能是错误的,程序将按预期运行

CPP中无明显原因的奇怪输出 我对Python和java非常精通,所以我决定尝试C++。我决定做一个刽子手游戏,但是当第一次猜错的时候,我得到了一个非常奇怪的输出。如果第一次猜测是正确的,那么之后的每一次猜测都可能是错误的,程序将按预期运行,c++,C++,以下是第一次猜测错误时的一些输出: 蒙特塞拉特?M S R?M S?英语M M o n t s e r a t?!╦' ? qlb?我不是吗?M L T?M T?我是谁?我是你的,是吗?你呢?U你呢?我是一名退休人员吗?我是你的吗?M K?我是l a w i?我是谁?M W?M W K?马拉维克瓦查?我是谁?嗯!ï? ? φ2k%?嗯,我是我的,是我的?M Y S?M Y R?马来西亚共和国?是的,是吗?H i j i r i C a l n d a r?Ö? Ö? :═ ? 我是谁?我是谁?M

以下是第一次猜测错误时的一些输出:

蒙特塞拉特?M S R?M S?英语M M o n t s e r a t?!╦' ? qlb?我不是吗?M L T?M T?我是谁?我是你的,是吗?你呢?U你呢?我是一名退休人员吗?我是你的吗?M K?我是l a w i?我是谁?M W?M W K?马拉维克瓦查?我是谁?嗯!ï? ? φ2k%?嗯,我是我的,是我的?M Y S?M Y R?马来西亚共和国?是的,是吗?H i j i r i C a l n d a r?Ö? Ö? :═ ? 我是谁?我是谁?MTWFñC m═ P═ S4 09:00 04 09?我是h n a m i b i a?不知道该怎么办?N F K?N-F?你的名字是什么?E n g l s h n i g r i a E r l 0 8 0 9:0 0 0 2 0 4 0 9?你呢?你呢?N R?我是你吗?你呢?你呢?你呢?你呢?╫╜ ┼╜ ? E N Z N E w Z E a l a N d?N Z L?NZ1409:0004099?P a P u N e w G u i N a?P N G P G?P G K?P a P u N e w G u i N K i N a?你的名字是什么?▒ ? 是吗?P H L?P H?P-H-P?P h i l i P i n e P i s o 3 4 0 9:0 0 0 0 4 0 9?!P a k i t a n?P A K?KP K R?P a k i s a n i R u P e?这是什么?岛屿?P C N?P N?英国皮特凯恩岛的国家公园和国家公园?P R?E g l s h P u r t r i c o?P a l a u P l W?P W?我是h P a l a u吗?R-F?R w a n d a R w a n d a n F R a n c?这是什么?S o l m o n I S l a n d S?SLB?S B?S B D?S o l o m o n I S l a n d S d o l a r?g l s h s o l o m o n i s l a n d s?S R

我不明白为什么在程序中没有类似的内容时,会输出这些内容

我也从所有胡说八道的背后得到了这个信息:

返回的进程-1073741819 0xC0000005

守则:

包括 包括 使用名称空间std; 字符串猜测; 字串=刽子手; 字符字母; 字符串空白; int=3; int main { forint i=0;i 您的guess函数被声明为返回字符串,但错误的猜测不会返回任何字符串。这是未定义的行为,这就是为什么有时会打印垃圾,有时会发生崩溃的原因

更改此项:

cout << guess();
cout << "The letter \"" << letter << "\" was not found." << endl;        
lives--;

此函数string guess表示它将返回一个字符串,但它并不总是这样做。由于您试图打印返回值,但没有返回值,因此您会收到垃圾。请尝试在编译器上提高警告级别,并注意它们。此外,correct \这意味着什么,肯定会弄乱句子的其余部分。@Ripi2看起来像一个e对我来说,@Ripi2对\没有任何错误,它被正确地使用了。关于\你是对的。我应该在评论之前慢慢看完整的句子。对不起。
cout << "The letter \"" << letter << "\" was not found." << endl;        
lives--;
lives--;
return "The letter \"" + string(1, letter) + "\" was not found.";