C++ 按esc退出程序 总结

         这几天老师叫我们用C++编个学生信息管理的软件,就当是作业。我们小组编完后,想在里面添加个功能,就是按esc退出程序或者回到前一个界面。我在网上找了一番,百度上关于这方面的问题挺多的,但是发现有些代码在我上面不能运行。我又自己试了下,发现了几种可以运行的情况:

 

1.  #include
     #include
     #include
     using namespace std;


     void main()
     {
          int c;
          cout<<"aaa";        //这一段只是在屏幕上显示“aaa”,没有什么实际含义

          c=_getch();
          if(c==27) exit(0);

          else 
          { cout<<"zzz";
             _getch();
          }

     }                               //此段代码在VS2005上调试成功

     这里定义了一个整型c,则 通过c=_getch()c返回的值是一个整数。是由于escASC码值为27,这里你按了esc键,c值就为27,然后if判断下,符合条件就退出。

      后面的else语句其实没有什么用,只不过如果没有else语句的话,你无论按什么键程序都会退出来,因为if后面没有其他语句了。else语句只是让你看到你按了esc其实是有用的。

 

2.  我然后把c的类型定义为char,同时c==27,即:

     #include
     #include
     #include
     using namespace std;
     void main()
     {
         char c;
         cout<<"aaa";
         c=_getch();
         if(c==27) exit(0);

         else 
         { cout<<"zzzz";
            _getch();
          }         

     }                              //此段代码在VS2005上调试成功

      这段代码生成后还是可以运行的,然后我就想看看char c在按了esc后其值到底是多少。于是有了下面的代码。。。

 

3.  #include

     #include
     #include
     using namespace std;
     void main()
     {
          char c;
          cout<<"aaa";
          c=_getch();
          if(c=='') exit(0);  // 这里''是一个特殊符号      

          else
          { cout<<"zzzz";
            _getch();
          }                   
     

     }                               //此段代码在VS2005上调试成功

      我重新建了个项目,把上面的代码拷过去后,是可以运行的。

      这里的变量c定义为字符型,这下大家可能会有点不解,为什么c==''呢?等我慢慢道来。我在if那里设置了一个断点,然后看c的值,如下图:

 

 

 其中c的值显示是27'□',我在搜狗输入法里找了下,特殊符号的P键就是'□' 。但是你点击27'□'时,又变成了''。如果你把“''”复制到“c==27”那里,把27覆盖掉,你会发现那里两个单引号之间空荡荡的,像是加了个空格。不要急,其实那只是看上去像空格而已,其实里面是有东西的。如果你把那空荡荡的东西复制到记事本里,他会变成这样:

 

我又把它复制到Notepad++(一款文本编辑软件)里面去,它才露出了一丝本来面目:

 

看到了么?esc。。原来如此。。

       以上就是我总结出来的方法,但遗憾的是我们并不准备在我们的程序中使用,因为他们都有个c=_getch();这导致输入数据的时候,你若是不想退出,那你输入的第一个字符时无法显示的。。这让我极其不爽,于是,我放弃了。。

 

 

你可能感兴趣的:(C++)