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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编完C语言程序后运行,在输完数据后一闪而过相关的知识,希望对你有一定的参考价值。

#include<stdio.h> // 包含stdio.h头文件
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));
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函数




在VC++里面是能运行且不会闪退的
听说要加getch(),我加在主函数的最后一个括号前却提示有错误,是不是我加错了应该加在哪里?

参考技术A #include<stdio.h>
getchar();
fflush(stdin);

#include<stdlib.h>
system("pause");

#include<conio.h>
getch();
或者
#include<windows.h>
MessageBox(NULL,"程序结束","消息",MB_OK);
加在main()函数的
return 0;前面

完整程序:
#include<stdio.h> // 包含stdio.h头文件
#include<conio.h> //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函数


本回答被提问者和网友采纳
参考技术B getch();
你打分号没?
PS: 也可以用system("pause");
参考技术C getch()后面的分号呢?
应该是 getch();
参考技术D 我测试了程序没问题,是不是你软件有问题 第5个回答  2015-02-12
getchar()

C语言scanf()常见报错问题

目录

1.提示 scanf 未申明

2.缺少 ' ; ' 错误

3.运行后窗口一闪而过

4.快捷设置以上内容


1.提示 scanf 未申明

问题症状:

我们一开始使用scanf() 都基本会遇到这样的报错

显示我们未申明 以下的错误

1."error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, "_CRT_SECURE_NO_WARNINGS". See online help for details."

2.参见“scanf”的声明

解决方法:

一 、_CRT_SECURE_NO_WARNINGS 也就是它错误提示上面给出的代码定义在程序的最开始

即  #define _CRT_SECURE_NO_WARNINGS(直接复制)

也可以 #define  _CRT_SECURE_NO_WARNINGS 1 后面 这个1可加可不加两种都可以

如图:

二 、将 scanf() 改写成 scanf_s()

这样也能有效的防止报错,但是在以后的不断学习中,你会知道 scanf() 才是规定的函数 scanf_s()虽然也能使用但是随着你代码量的增多 实现复杂的程序时 可能出现的程序Bug等一系列莫名其妙的问题,你根本不会注意到它,因此这里建议使用第一种方法,也就是在使用 scanf() 时 在程序开头给它定义代码的方式


2.缺少 ' ; ' 错误

问题症状:

如下以及下图中右下角方框显示-它会提示:

1.语法错误 : 缺少 “;” (在“类型”的前面)

2.“sum”: 未声明的标识符

这里你会反复检查代码哪里出现了问题 是否定义了sum 以及是否少了 ' ; ',结果都是百思不得其解。而这里问题 是由VS版本差异导致的这里VS系列推荐VS2013、VS2019,VS2013版本会出现这种问题,VS2019暂时不知,不过解决方法应该一致

解决方法:

如图中 可以将  int sum=b+c; 这个sum 定义放在 scanf() 的前面 如下图便能成功运行

看到这 细心的人会发现 这里我用的是scanf_s() 而不是 scanf()  而这就是我们刚刚讲的未申明scanf(),而为什么我都建议scanf()了还用scanf_s()的原因就是下面要说的快捷设置方法


3.运行后窗口一闪而过

同上面所说的一样 不同VS的版本都会有大大小小的问题,因此在学习过程中最好与所学视频资料等使用的版本一致,才能最大程度避免出现一些细小的问题

问题症状:

这里出现的问题就是 在你运行的时候程序如果没出错  应该弹出那个win32窗口程序面板 ,在这个界面可以看见你程序运行的结果过程,但是很多人都会出现一闪而过的情况 ,不会显示 就无法进行下一步的操作

 

解决办法:

1.在程序开头引入库函数 #include<windows.h>  平时生活中都会说有借有还, C语言也不例外 我们使用的库函数 printf 和微软规定的 系统函数system 等的时候 一旦使用都需要跟系统说一声 即引用 伴随C语言学习的始终

2.然后在main函数里面return 0;前面加上 system("pause");

这样程序就能停留在 你需要操作的 win32窗口程序面板


4.快捷设置以上内容

思考:

看到这想必你的问题已经得到了解决,但是心里应该没有太大的喜悦感。为什么呢?因为这些方法没有给你带来一劳永逸的快感,你可能也意识到既然这样那我岂不是每次都要设置一次吗。

因此这里带来只需设置一次的方法,方法较为简单。

解决方法:

1.打开你所装版本的VS安装路径--可以找到软件图标右键打开文件夹所在位置

2.跟着图示步骤找到newc++file.cpp 你也可以直接在你电脑搜索引擎里面搜这个文件名

3.管理员身份运行 在里面输入你的内容 即上面讲的 定义 和 窗口闪退 然后保存,新建一个项目你就会发现上面讲的需要你每次写的东西一新建好项目后就有了

很多人不知道怎么管理员运行,因为右键后没这选项,所以可以将文件拖动到桌面-然后右键编辑然后拖回刚才那个文件夹就行了

也可以下载一个 Notepad++ 这个软件 就在找到的路径下打开方式选Notepad++编辑newc++file.cpp 也可

格式最好在VS里面编辑好然后复制在里面,拖回后可以试着新建项目看看有没有效果

如下图所示,我就将上面讲的需要每次创建基本都需要的繁琐不断重复的东西给放在newc++file.cpp 文件夹里面了 这样每次新建项目就是图示的样子


最后需要提醒的是 这里的 #define _CRT_SECURE_NO_WARNINGS、 scanf_s()、以及窗口闪退问题 在正规的刷题网站 牛客等 都不会存在 无需进行这些操作,而至于定义变量的位置自己尝试下  毕竟刷题讲究代码的行数内容,你可以看怎样运行更便捷 是定义在scanf()前还是后面

完结撒花!!

怎么样,问题解决的感觉是不是很爽呢

其实这些问题很简单,一会儿就能解决 ,但是写出来却耗费了好多的时间,果然教和学是两码子事,希望这些能帮助到你们。难免会有不足之处,如果有错误,请联系我改正,谢谢啦!点赞关注啦,求求了!!!

以上是关于编完C语言程序后运行,在输完数据后一闪而过的主要内容,如果未能解决你的问题,请参考以下文章

c语言编程做出程序后闪退是怎么回事?求大神 本人菜鸟!

用c语言编完程序怎么生成exe可执行文件?

vs2010程序无法运行,怎么回事,急急急

visual studio 2005 编完程序批生成后,却无法运行,只是闪一下黑屏,怎么回事?

学习C语言的第一天

为啥我用vs2012编完c语言之后调试时显示“无法启动程序,系统找不到指定文件”?