在VC++中为什么C程序运行后答案一闪而过来不及看清

使用VC++运行C程序时,为什么运行后答案一闪而过来不及看清? 怎样设置才能使命令行窗口停下来,而不是自动快速关闭?

第1个回答  2019-12-13
先解释一下为什么一闪而过:
当你在vc++里运行程序,vc++将会调用行命令模式(即command.com程序),打开你的程序。当程序执行完毕后将自动退出行命令模式。所以你来不及看你的程序的输出。
要解决这个问题,最简单的方案就是在你的代码的最后,return
0;之前,加上
getchar();
//getch()似乎不是ANSI
C的一部分
这个语句将使得你的程序做最后一件事情:从输入缓冲区(输入流stdin)中读一个字符。也就是说在你的其他程序结束后,还要敲一下回车才会结束所有程序。
但是,要注意的是:当程序快结束时,如果你的输入缓冲区中已经有字符了,c语言将直接从缓冲区中读取一个字符,然后结束程序。而不等待你的输入。
比如:
#include<stdio.h>
int
main(void)
{
putchar(getchar());
//你的程序只有这么一句,作用是输入一个字符,然后计算机将它输出
getchar();//这是你为了防止一闪而过而加的语句
return
0;
}
这个程序结束时将仍然一闪而过。原因在于第一条getchar()表达式执行的时候,将返回你输入的第一个字符,后面的字符(包括回车字符'\n')留在了缓冲区。要解决这类问题,得随机应变,没有统一的解决方案。在这个例子中,可以这样:
#include<stdio.h>
int
main(void)
{
putchar(getchar());
//你的程序只有这么一句,作用是输入一个字符,然后计算机将它输出
while(getchar()!='\n')
continue;//这个循环将把输入缓冲区的内容清掉,一直清到换行符。
getchar();//这是你为了防止一闪而过而加的语句
return
0;
}
复杂一点的解决方案是,不要在visual
c++中执行。你先生成可执行文件,然后打开行命令模式(运行->cmd),然后在那里运行你的程序,就不会自动退出了。
sorry,刚才试了一下,ctrl+f5确实可以,parason说的很对。
本想不发了,但是写了半天,不发也可惜,况且,从我写的这些,你可以更加理解一些原理性的东西。而且,我写的是一个通用的办法,即使不是visual
c++也可以用。
不过最佳答案千万别选我,因为我的答案和parason的比起来确实很愚蠢。

在VC++中为什么C程序运行后答案一闪而过来不及看清
当你在vc++里运行程序,vc++将会调用行命令模式(即command.com程序),打开你的程序。当程序执行完毕后将自动退出行命令模式。所以你来不及看你的程序的输出。要解决这个问题,最简单的方案就是在你的代码的最后,return 0;之前,加上 getchar();\/\/getch()似乎不是ANSI C的一部分 这个语句将使得你...

vc++的c的exe程序一闪而过
这个原因一般是使用函数的时候出错,因为没有错误处理函数(WINDOWS编程的范围),所以系统直接将程序关闭。这个错误一般出现在你的system("pause");、getchar();之前。我猜是scanf出错。你可以使用F10布过来一句一句地执行,执行到出错那句的时候,一般会有两种情况发生:1:程序暂停,然后弹出一个警告窗口...

vc++2010 express编写C程序调试之后一闪而过怎么解决
原因 你这也不是有运行循环的程序,执行完代码不就退出了么...

VC++时DOS界面一闪而过?
这里因为你的程序里没有涉及到从键盘输入数据或输出数据,只是处理,你想看到结果可以这样办,在程序最后加上一句:system("pause");或者getch();这样运行时就会停在这里直到你从键盘是按下任意键才会结束程序 如果这样还不行的话,你可以设置断点,到运行那里时就停止 方法是把光标放到你要停止的那一行...

寻求在vs2010中c++编译运行后屏幕一闪而过解决方法
system("pause");进入暂停模式,等用户输入任何键就继续执行。加上头文件#include "iostream.h"

VC++在写C程序时怎么解决 编译完后运行一闪而过啊
使用Ctrl+F5键运行;或者在程序快结束时加一行system("pause");

用vc++6.0写的C程序,我根据路径,点击那个exe文件,可是屏幕上一闪而过...
程序一执行完就结束了,所以要么在最后等待用户输入些什么,要么使用系统函数来暂停。前者是在return之后加一句getchar();后者是用system("pause");

vc++6.0平台上进行opengl编程时,运行程序一闪而过,但是有的程序是能...
原因:程序运行结束自动关闭。解决方案:1、可以在main函数return 前加上添加一句getchar();2、个人认为,比较好的做法是在main函数return 前加上system("pause");需要#include <stdlib.h> ps:system就是调用从程序中调用系统命令(和shell命令)。system("pause")就是从程序里调用“pause”命令;而...

DEVc++用起来感觉不一样啊
一闪而过时正常的。VC之所以没有一闪而过,是因为他悄悄地在程序末尾加入了一句 GETCHAR();,而这句是默认加入的,因此你能看到结果。但是这种做法有时候会让程序出问题(不过很少会这样)。 你想,程序执行完了,为什么要给你看下结果在退出呢??没有这个道理吧? 因此,在DEV中,想看到结果,你...

用VC++2008速成版 写控制台程序一闪而过
这样做还有一个好处,程序产生的exe文件可以多次使用,也不会产生结果一闪而过的现象。上面所说的在程序最后加getchar语句,只能保证在调试运行时exe文件不自动关闭,但在产生的exe文件独自运行时运行结果依然一闪而过。例如:这是一个我做的小程序:include <stdio.h> void main(){ l: long int i;...

相似回答
大家正在搜