编完C语言程序后运行,在输完数据后一闪而过

编完C语言程序后运行,在输完数据后一闪而过,第1张

#include<stdioh>

getchar();

fflush(stdin);

#include<stdlibh>

system("pause");

#include<conioh>

getch();

或者

#include<windowsh>

MessageBox(NULL,"程序结束","消息",MB_OK);

加在main()函数

return 0;前面

完整程序:

#include<stdioh> // 包含stdioh头文件

#include<conioh> //getch();

int max(int, int); // 函数声明

int main(){

int a, b; // 声明两个整型变量

printf("Input two integers: "); // 以空格为分隔

scanf("%d %d", &a, &b); // 将输入的两个整数分别赋值给a, b

// 以整数形式输出最大值, a, b为实际参数(实参)

printf("The max integer is %d\n", max(a, b));

getch();

return 0;

}

// 函数定义

int max(int num1, int num2){ // num1, num2为形式参数(形参)

if(num1>num2){ // 如果num1大于num2

return num1; // 返回num1并结束max函数

}else{ // 如果num2大于num1

return num2; // 返回num2并结束max函数

}

}

这是因为电脑运行得很快,

而你编写的程序里面肯定没有让电脑可以停歇的语句,电脑执行完程序后就自动关闭,只有想办法让它停下等咱们才能看清楚

所以建议在程序的最后加一句getchar();这时,你要加入头文件#include<conioh>。

因为这个头文件是键盘和屏幕输入输出的控制头文件。当然也有别的方法,就等你了解其原理时就知道该怎样了

解决这个问题,可以在代码的最后加上system("pause")、getchar()、cinget()。

比较常用的做法是使用system("pause"),不推荐使用"system("pause"),因为:

1、不可移植。只适合Dos或Windows,不适合Linux等。

2、耗费系统资源。调用系统命令system()去做"暂停程序"的事情有点大材小用。

3、必须添加头文件:stdlibh或者cstdlib。

推荐方法:

1、 C中,使用getchar();

2、 C++中,使用cinget();

丰富一下两种替代方法:

1、C中

printf("按任意键继续……");

getchar();

2、C++中

cout<<"按任意键继续……";

cinclear();

cinsync();

cinget();

备注:加上cinclear()、cinsync()这两句,是清空缓存区,让cinget()真正接收到键盘输入。

一闪而过是程序自动结束,同时编译器没有提供结果驻留功能。对于此种情况,可以手动在代码结尾增加驻留功能的函数。常用的有如下两种:

1 通过getch函数驻留。

getch会等待从屏幕的输入,在main函数退出前,增加

getch();

调用,系统会等待输入,直到有新的输入,才会退出界面。

2 通过system("pause");来实现驻留。

在main退出前调用

system("pause");

会调用系统的pause函数,提示并实现按任意键退出程序效果。

如果是已经编译好的C语言程序,可以通过开始->运行,键入cmd后回车。

在打开的命令行窗口,将可执行文件拖动到窗口上,再回车即可运行该程序,在此窗口不会出现闪退,从而观察运行结果。

由于该问题仅在windows平台出现,所以以上介绍均针对windows平台。

用getch();

附:

getchar有一个int型的返回值当程序调用getchar时程序就等着用户按键用户输入的字符被存放在键盘缓冲区中直到用户按回车为止(回车字符也放在缓冲区中)当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键

getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1输入的字符不会回显在屏幕上getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行

以上就是关于编完C语言程序后运行,在输完数据后一闪而过全部的内容,包括:编完C语言程序后运行,在输完数据后一闪而过、为什么自己编译的c语言程序会一闪而过、避免 C/C++ 程序一闪而过的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9459161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存