c语言程序执行一闪而过怎么办

#include<stdio.h>voidto_upper_str(char*str)//子函数{while(*str){if(*str>='a'&&*str<='z')... #include<stdio.h>

void to_upper_str( char *str ) //子函数
{
while( *str )
{
if( *str >='a' && *str<='z' )
*str -= 32;
str++;
}
}

int main(){
char str[11] ;
printf("请输入10个英文字符: \n");
scanf("%s",str);
str[10]='\0' ;
to_upper_str( str );
printf("结果为:%s\n",str);
return 0;
}
展开
 我来答
西西哩的小马甲
2018-07-13 · TA获得超过10.1万个赞
知道大有可为答主
回答量:39
采纳率:100%
帮助的人:1.8万
展开全部

原因:在编译执行的时候,如果是直接按F5是调试,就会出现一闪而过的情况,安ctrl+F5的执行不调试,这样的话就不会出现一闪就没的情况了。

方法一:getchar(),即在主函数尾部或程序最后加上getchar();也就是接受键盘输入,这样程序就不会一闪而过,因为程序还没有执行完。

注:当代码中存在scanf()函数时,需要在getchar();前加上fflush(stdin);清除键盘缓存,以防影响getchar()的接收。

方法二:system("pause"),system("pause");加在主函数的尾部,配合windows.h头文件使用才行。即
#include <stdio.h>
#include <windows>
void main(){
……
system("pause"):
……
}

魔方格的故事
2018-07-09 · TA获得超过6797个赞
知道答主
回答量:142
采纳率:100%
帮助的人:4.9万
展开全部

可以在程序结尾使用system("pause");语句阻止窗口消失。

system("pause");的头文件为#include<stdlib.h>

#include<stdio.h>

#include<stdlib.h>

void to_upper_str( char *str ) //子函数

{

while( *str )

{

if( *str >='a' && *str<='z' )

*str -= 32;

str++;

}

}

int main(){

char str[11] ;

printf("请输入10个英文字符: \n");

scanf("%s",str);

str[10]='\0' ;

to_upper_str( str );

printf("结果为:%s\n",str);

system("pause");

return 0;

}

拓展资料

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1]  目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

stdlib头文件即标准库标准库头文件 .stdlib.h里面定义了五种类型,一些宏和通用工具函数。类型例如size_t,wchar_t,div_t,ldiv_t和lldiv_t;宏例如EXIT_FAILURE,EXIT_SUCCESS,RAND_MAX和MB_CUR_MAX等等;常用的函数如malloc(),calloc(),realloc(),free(),system(),atoi(),atol(),rand(),srand(),exit()等等。具体的内容打开可以compile-器的包括目录里面的文件stdlib.h头文件查看。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
2015-10-14 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450133
专业C/C++软件开发

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

1 通过getch函数驻留。
getch会等待从屏幕的输入,在main函数退出前,增加
getch();
调用,系统会等待输入,直到有新的输入,才会退出界面。

2 通过system("pause");来实现驻留。
在main退出前调用
system("pause");
会调用系统的pause函数,提示并实现按任意键退出程序效果。

如果是已经编译好的C语言程序,可以通过开始->运行,键入cmd后回车。
在打开的命令行窗口,将可执行文件拖动到窗口上,再回车即可运行该程序,在此窗口不会出现闪退,从而观察运行结果。

由于该问题仅在windows平台出现,所以以上介绍均针对windows平台。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f27200e
2018-07-11 · TA获得超过2.6万个赞
知道小有建树答主
回答量:390
采纳率:100%
帮助的人:6.4万
展开全部

解决问题方法:

方法一:getchar()

即在主函数尾部或程序最后加上getchar();

也就是接受键盘输入,这样程序就不会一闪而过,因为程序还没有执行完!

注:当代码中存在scanf()函数时,需要在getchar();前加上fflush(stdin);清除键盘缓存,以防影响getchar()的接收!

方法二:getch()

getch();的使用很简单,也是加载主函数的尾部,但其需要配合conin.h头文件使用才行!

#include <stdon.h>

#include <conin.h>

void main{

……

getch();

……

}

方法三:system("pause")

system("pause");加在主函数的尾部,配合windows.h头文件使用才行

#include <stdio.h>

#include <windows>

void main(){

……

system("pause"):

……

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MercelProust
2012-06-26 · TA获得超过1082个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:626万
展开全部
加两句getchar();才可以。因为你在上面用了scanf,输入完成后会在缓冲区残留一个'\n'字符(scanf不接受'\n'的),第一个getchar会接受缓冲区内的这个残留的'\n'字符作为输入,而不是等待你的键盘输入,所以才会显得加getchar()没效果,其实是需要连续写两个getchar();才可以
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式