Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 程序停止而不运行while循环_C++_While Loop - Fatal编程技术网

C++ 程序停止而不运行while循环

C++ 程序停止而不运行while循环,c++,while-loop,C++,While Loop,我的while循环不工作。代码在编译器上正确运行。然后我用visualstudio编译它,从命令提示符下运行它并输入一个数字。即使数字正确,程序也会提前停止 #include <cstdlib> #include <iostream> int main() { int answer = 8; int guess; int tries; std::cout << "I have a number between 1-10.\n"; s

我的while循环不工作。代码在编译器上正确运行。然后我用visualstudio编译它,从命令提示符下运行它并输入一个数字。即使数字正确,程序也会提前停止

#include <cstdlib>
#include <iostream>

int main() {

  int answer = 8;
  int guess; 
  int tries;

  std::cout << "I have a number between 1-10.\n";
  std::cout << "Please guess it: ";

  std::cin >> guess;  

   while (guess != 8 && tries < 50) {    
    std::cout << "Wrong guess, try again: ";
    std::cin >> guess;   
    tries++;
  }
   if (guess == 8) {   
    std::cout << "You got it!\n";
  }  
}
#包括
#包括
int main(){
int-answer=8;
智力猜测;
智力测验;
无法猜测;
而(猜测!=8&&trys<50){
std::cout>猜测;
尝试++;
}
如果(猜测==8){

std::cout正如@rsjaffe和@Ken White在评论中所说的那样,
trys
变量是统一的,这意味着变量指向的内存中的位置是“垃圾”(剩余内存)。尝试给它一个初始值,如下所示:

int tries = 0;

它将实例化和初始化
trys
变量。

变量trys未初始化,因此您有未定义的行为。一个编译器可能会将其归零,另一个编译器可能不会。在调试器中单步执行代码将明确问题所在。在编译器中启用提示和警告也是如此,因为我会告诉你你正在使用一个未初始化的变量。