C语言常用函数知识点笔记

C语言常用函数知识点笔记

(1)Windows函数中的system函数

头文件#include<stdlib.h>

函数原型int system(char *command);

system("pause")

可以实现冻结屏幕,便于观察程序的执行结果

system("CLS")

可以实现清屏操作

system("color 3E")

3是背景色代号,E是前景色代号

0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色6=黄色 7=白色 8=灰色 9=淡蓝色

A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色

system("title C语言程序")

设置cmd窗口标题

system("mode con cols=48 lines=25")

窗口宽度高度

(2)PlaySound()函数播放声音文件

头文件#include <mmsystem.h>

函数原型BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);

#include <mmsystem.h>              //导入声音头文件

#pragma comment(lib,"winmm.lib")   //导入声音头文件库

参数pszSound是要播放声音的文件名,只支持WAV等格式的文件

参数hmod是应用程序的实例句柄,一般传递NULL就可以;

参数fdwSound是标志的组合掩码,可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。

播放标志

含义

SND_APPLICATION

用应用程序指定的关联来播放声音

SND_ALIAS

参数指定了注册表或WIN.INI中的系统事件的别名

SND_ALIAS_ID

pszSound  参数指定了预定义的声音标识符

SND_ASYNC

用异步方式播放声音,PlaySound函数在开始播放后立即返回

SND_FILENAME

pszSound  参数指定了WAVE文件名

SND_LOOP

重复播放声音,必须与SND_ASYNC标志一块使用

SND_MEMORY            

播放载入到内存中的声音,此时pszSound是指向声音数据的指针

SND_NODEFAULT         

不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音

SND_NOSTOP PlaySound  

不打断原来的声音播出并立即返回FALSE

SND_NOWAIT            

如果驱动程序正忙则函数就不播放声音并立即返回

SND_PURGE             

停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音

SND_RESOURCE

pszSound  参数是WAVE资源的标识符,这时要用到hmod参数

SND_SYNC

同步播放声音,在播放完后PlaySound函数才返回

(3)time时间函数

函数用途                       函数名

得到处理器时间                  clock

得到时间差                      difftime

设置时间                        mktime

得到时间                        time  time_t time(time_t * timer)

得到以 ASCII码表示的时间        asctime

得到字符串表示的时间            ctime

得到指定格式的时间              strftime

用标准C实现获取当前系统时间的函数

1、time()函数

time(&rawtime)函数获取当前时间距1970年1月1日的秒数,单位秒,存于rawtime 中。

#include "time.h"
void main ()
{
    time_t rawtime;
    struct tm * timeinfo;
    time ( &rawtime );
    timeinfo = localtime ( &rawtime );
    printf ( "\007The current date/time is: %s", asctime (timeinfo) );
    exit(0);
}

===============================================================================

#include               必须的时间函数头文件

time_t                 时间类型(time.h 定义是typedef long time_t)

time(&rawtime)         获取时间,以秒计,从1970年1月一日起算,存于rawtime

localtime(&rawtime)    转为当地时间,tm 时间结构

asctime()            转为标准ASCII时间格式:星期 月 日 时:分:秒 年

===============================================================================

struct tm--时间结构体,在time.h中定义如下:

struct tm

{

    int tm_sec;       /* 秒–取值区间为[0,59] */

    int tm_min;       /* 分-取值区间为[0,59] */

    int tm_hour;      /* 时-取值区间为[0,23] */

    int tm_mday;      /* 一个月中的日期-取值区间为[1,31] */

    int tm_mon;       /* 月份-从一月开始,0代表一月,取值区间为[0,11] */

    int tm_year;      /* 年份-其值等于实际年份减去1900 */

    int tm_wday;      /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */

    int tm_yday;     /* 从每年的1月1日开始的天数,取值区间为[0,365],其中0代表1月1日,1代表1        
                        月2日,以此类推 */

    int tm_isdst;           /* 夏令时标识符*/

    long int tm_gmtoff;   /*指定了日期变更线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/

    const char *tm_zone;    /*当前时区的名字(与环境变量TZ有关)*/

};

===============================================================================

2、clock()函数,用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成“秒”

clock_t clock ( void );

clock_t t = clock();

long sec = t / CLOCKS_PER_SEC;

===============================================================================

综合应用举例

/**

*  @Copyright(c) 2018 Allrightreserved

*  @项目名称:测试时间函数、音乐播放器和system函数

*  @完成时间:2018年3月10日

*  @开发平台:VS2017

*  @未央

*/

#include<stdio.h>

#include<stdlib.h>

#include<time.h>                     //时间函数头文件

#include<Windows.h>

#include<mmsystem.h>                 //音乐播放头文件

#pragma comment(lib,"winmm.lib")     //音乐播放文件库导入(不可缺少)



int main()

{

    clock_t start,finish;

    double t=0.0;



    /*system函数的使用,包含在头文件stdlib.h中*/

    system("title 测试代码");

    system("mode con cols=64 lines=25");

    system("color 3E");



    start=clock();          //测试时间起点



    /*音乐播放功能实现,包含在头文件mmsystem.h中*/

    printf("\t------播放音乐------\n");

    PlaySound(TEXT("sounds\\1.wav"),NULL,SND_FILENAME|SND_LOOP);   //播放背景音乐



    finish = clock();      //测试时间终点



    t=(double)(finish-start)/CLOCKS_PER_SEC;

    printf("\n\n\t执行时间: %f s\n\n",t);



    /*获取当前时间*/

   

    time_t nowtime;

    struct tm *t1;

    nowtime=time(NULL);

    time(&nowtime);

    t1=localtime(&nowtime);

    printf("\t获取当前时间:%s\n\n", asctime(t1));

    printf("\t获取当前时间:%4d年%02d月%02d日 %02d:%02d:%02d\n\n",t1->tm_year+1900,t1->tm_mon+1,t1->tm_mday,t1->tm_hour,t1->tm_min,t1->tm_sec);

   

    //time_t nowtime;

    time(&nowtime);

    printf("\t获取当前时间:%s\n\n", ctime(&nowtime));



    system("pause");

    return 0;

}

猜你喜欢

转载自blog.csdn.net/qq_40270579/article/details/81098583