关于c++程序运行的窗口停留问题

今天调试运行程序时,发现每次运行时窗口一闪而过的处理办法,在程序return之前添加getchar()函数竟然不管事了。于是查找原因,后面发现了以下几种解决办法以及对应的知识内容,记录下来。

  • getchar函数失效的原因
自己在前面的代码中使用了cin,输入一个变量的值。在输入变量的值后,我们都要键入一个回车符号作为结束符,而cin函数是不会读入空格和回车符,只是把他们作为区分不同变量和结束的标志。那么键入回车符后,回车符便被存入了输入缓存区,当程序结束时调用getchar函数时,会立即将之前缓存区中的回车符读入,所以程序将继续运行,导致不能够作为窗口停留。

  • getchar/cin/cin.get/cin.getline等几个不同的输入函数之间的区别,详见http://blog.csdn.net/oier00lcj/article/details/78152243

  • 几种解决程序运行窗口一闪而过的办法

  1.   在程序结尾添加system("PAUSE");函数的语句,此语句能够将程序停止于此处,并且按任意键继续。
  2.  利用编译器VS调试时,不使用(快捷键F5)这个默认调试按钮,而是运行:开始执行(不调试)(快捷键Ctrl+F5),但此按钮只用于查看程序运行结果的情况,不能设置断点等功能。可以将开始执行(不调试)按钮添加到快捷命令栏中方便下次使用。添加的步骤如下:关于c++程序运行的窗口停留问题_第1张图片关于c++程序运行的窗口停留问题_第2张图片 后面就可以看到快捷栏有一个开始执行(不调试)的符号了,在只需要查看代码运行效果的时候就可以方便快捷的,使用它了。是不是省心了许多。
  3. 仍然在程序结尾添加getchar()函数,等待输入字符。但是此前添加一个语句清楚输入缓冲区字符。添加的语句如下:while ((c = getchar()) != '\n' && c != EOF);    /*直接运行可清除输入缓存流*/

你可能感兴趣的:(技术学习)