• C++ 控制台编程


    播放媒体文件

    1 #include<windows.h>
    2 #program <mmsystem.h>
    3 #pragma comment(lib,"winmm.lib")
    4 mcisendstring(”open music.wav”,NULL,0,0);
    5 mcisendstring(”play music.wav”,NULL,0,0);

    这个指令在少数电脑上可能无法通过

    Windows.h中的系统函数原型

    srand(unsigned int(……))

    参数:unsigned int型的随机数种子

    功能:给伪随机数生成种子,为保证随机数真的随机,常常把参数设定为系统当时时间。

    System(“cls”)

    功能:清除cmd窗口内所有内容

    system("mode con cols=100 lines=30")

    功能:将cmd窗口设定为指定大小,其中cols指定为列数,lines指定为行数。

    控制台界面编程

    改变控制台背景色

    #include<Windows.h>
    ……
    ……
    System(“color 0A”)

    这是windows.h头文件中的函数之一,能够改变整个控制台窗口的颜色,0代表背景色,A代表前景色。颜色数字和setcolor相同,只不过要改成16进制。

    注:我查了很久都没查到,自己实验后发现,和SetConsoleTextAttribute函数原型没有冲突,可以随意使用。

    HANDLE GetStdHandle( DWORD nStdHandle );

    参数:

    STD_INPUT_HANDLE(标准输入设备)
    STD_OUTPUT_HANDLE(标准输出设备句柄)
    STD_ERROR_HANDLE(标准错误句柄)

    功能:取系统标准句柄。

    CONSOLE_SCREEN_BUFFER_INFO bInfo;

    功能:储存窗口信息

    GetConsoleScreenBufferInfo(hout, &Info );

    参数:标准输出,窗口信息地址

    功能:读取窗口信息

    FillConsoleOutputCharacter(hout,' ', bInfo.dwSize.X * bInfo.dwSize.Y, pos, NULL);

    参数:标准输出,填充字符char,窗口信息X,窗口信息Y;

    注意:需要在前方声明结构体postion。

    功能:向窗口填充空格以达到清屏效果

    SetConsoleTitle(“Title”);

    参数:字符串title(窗口标题)

    功能:改变窗口标题

    CloseHandle(hout);

    参数:标准输出hout

    功能:关闭输出句柄hout

    SetConsoleCursorPosition(hout, coord);

    参数:输出句柄hout,结构体coord

    功能:将光标移动到以结构体的X和Y位坐标的位置。

    SetConsoleTextAttribute(hout, bg_color * 16 + fg_color);

    参数:输出句柄hout,整数,整数是背景色标号*16与前景色标号的合

    功能:改变文本的背景色和前景色,如果打印空格则不输出前景色

    GetModuleFileName(hhandle,lpfilename,size)

    取当前模块的绝对加载路径,如果hhandle参数为NULL则取exe文件的绝对路径,将其放入字符数组中,用size限定最大长度

    time.h


    time.h/ctime头文件内含有一系列与时间及其转换的函数

    使用C语言下的time.h实现一个时钟

    所需函数

    • time()
    • localtime()
    • asctime()

    time()

    time_t time(time_t * timer)
    返回一个从计算机公元纪年(1970年1月1日00:00)到目前为止的秒数(如果t是空指针)

    localtime()

    struct tm * localtime ( const time_t * timer );

    将time()取得的秒数转化为一个具有实际意义的时间结构体,包含了年月日星期时间等信息

    asctime()

    char* asctime (const struct tm * timeptr).

    asctime()将localtime()所得的时间结构体转化为当前所在时区的正确时间,返回一个字符串

    以下是我用C语言实现的一个时钟

    //This is a clock cpp programe based on c language,while I cannot totally comprehend the exact uses of cpp time function
    #define _CRT_SECURE_NO_WARNINGS
    #include<iostream>
    #include<ctime>
    #include<Windows.h>
    #include<cstdlib>
    using namespace std;
    HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
    void gotoxy(const int x, const int y)
    {
        COORD coord;
        coord.X = x;
        coord.Y = y;
        SetConsoleCursorPosition(hout, coord);
    }
    int main()
    {
        time_t now;
        struct tm *timeblock;
        SetConsoleTitle("c_clock");
        system("color F0");
        system("mode con cols=50 lines=10");
        while (1)
        {
            Sleep(1000);
            gotoxy(12, 4);
            now = time(NULL);
            timeblock = localtime(&now);
            cout << asctime(timeblock);
        }
        return 0;
    }

    以下是程序运行效果

    使用C++实现一个时钟

    所需函数

    • time()
    • localtime_s()
    • asctime_s()

    time()用法同上

    localtime_s()

    errno_t localtime_s(
       struct tm* _tm,
       const time_t *time 
    );
    

    errno_t是一种数据类型,表示最后一次运行的错误代码,0表示没有错误

  • 相关阅读:
    类的加载
    java经典面试题(转)
    I/O NIO 2
    【转】Impala和Hive的关系
    【转】工作站和服务器的区别
    JAVA之线程
    【转】Linux中vim的粘贴复制快捷键的使用
    【转】Zookeeper集群为什么要是单数
    【转】Impala常见错误
    hadoop命令工作常用
  • 原文地址:https://www.cnblogs.com/liutianchen/p/5373522.html
Copyright © 2020-2023  润新知