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表示没有错误

原文地址:https://www.cnblogs.com/liutianchen/p/5373522.html