c语言程序执行一闪而过怎么办
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;
} 展开
原因:在编译执行的时候,如果是直接按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"):
……
}
可以在程序结尾使用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头文件查看。
1 通过getch函数驻留。
getch会等待从屏幕的输入,在main函数退出前,增加
getch();
调用,系统会等待输入,直到有新的输入,才会退出界面。
2 通过system("pause");来实现驻留。
在main退出前调用
system("pause");
会调用系统的pause函数,提示并实现按任意键退出程序效果。
如果是已经编译好的C语言程序,可以通过开始->运行,键入cmd后回车。
在打开的命令行窗口,将可执行文件拖动到窗口上,再回车即可运行该程序,在此窗口不会出现闪退,从而观察运行结果。
由于该问题仅在windows平台出现,所以以上介绍均针对windows平台。
解决问题方法:
方法一: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"):
……
}