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表示沒有錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM