最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

C++ 控制臺(tái):寫小應(yīng)用/小游戲時(shí)各種技術(shù)上所需的小代碼之合集(目前共23個(gè))

2021-10-04 15:46 作者:HeliFoli  | 我要投稿

目錄:

  1. 設(shè)置打印顏色

  2. COORD 類型結(jié)構(gòu)體

  3. 延時(shí)?Sleep

  4. 設(shè)置控制臺(tái)光標(biāo)位置?SetConsoleCursorPosition

  5. 獲取/設(shè)置控制臺(tái)模式 GetConsoleMode / SetConsoleMode

  6. 獲取鼠標(biāo)在控制臺(tái)的位置

  7. system 函數(shù)

  8. 設(shè)置控制臺(tái)標(biāo)題?SetConsoleTitle

  9. 檢測按鍵狀態(tài)?GetKeyState /?GetAsyncKeyState?

  10. 檢查控制臺(tái)是否有鍵盤輸入 _kbhit

  11. 讀取鍵盤輸入 _getch

  12. 設(shè)置控制臺(tái)字體大小

  13. 蜂鳴 Beep

  14. 檢索指定的系統(tǒng)指標(biāo)或系統(tǒng)配置設(shè)置 GetSystemMetrics

  15. 設(shè)置窗口的大小 / 位置 / Z軸順序?SetWindowPos

  16. 窗口顯示 ShowWindow

  17. 合成擊鍵事件?keybd_event

  18. 合成鼠標(biāo)事件?mouse_event

  19. 合成鍵盤/鼠標(biāo)事件?SendInput

  20. 彈出模態(tài)對話框 MessageBox

  21. 設(shè)置控制臺(tái)光標(biāo)信息?SetConsoleCursorInfo

  22. 生成偽隨機(jī)數(shù)(低質(zhì)量)?rand

  23. 生成偽隨機(jī)數(shù)(高質(zhì)量) <random>

紅字是輸出/設(shè)置/合成,藍(lán)字是輸入/獲取/檢測。順序隨便排的。


1. 設(shè)置打印顏色(windows.h)

可封裝為函數(shù)以簡潔代碼:

顏色對照表

2. COORD 類型結(jié)構(gòu)體(windows.h)

windows.h 中用于定義控制臺(tái)屏幕緩沖區(qū)中字符單元格坐標(biāo)的結(jié)構(gòu)體類型。坐標(biāo)系 (0,0) 的原點(diǎn)位于緩沖區(qū)的頂部左側(cè)單元格。

COORD 是 coordinate(坐標(biāo))的簡寫。

3. 延時(shí)?Sleep(windows.h)

4. 設(shè)置控制臺(tái)光標(biāo)位置?SetConsoleCursorPosition(windows.h)

可封裝為函數(shù):

5. 獲取/設(shè)置控制臺(tái)模式 GetConsoleMode / SetConsoleMode(windows.h)

例如,我們可以寫一個(gè)“禁用快速編輯模式”且“啟用鼠標(biāo)輸入”的功能:

其它參數(shù)詳見:

????https://docs.microsoft.com/en-us/windows/console/getconsolemode

????https://docs.microsoft.com/en-us/windows/console/setconsolemode


6.?獲取鼠標(biāo)在控制臺(tái)的位置(windows.h)

與【5】配合使用。

7. system?函數(shù)(windows.h)

發(fā)出一個(gè)DOS命令。

可實(shí)現(xiàn)的功能較多,我只列舉比較常用的幾個(gè):

其他的一些參數(shù)可見:https://blog.csdn.net/u010551600/article/details/23383411


8. 設(shè)置控制臺(tái)標(biāo)題?SetConsoleTitle(windows.h)

9. 檢測按鍵狀態(tài)?GetKeyState /?GetAsyncKeyState?(windows.h)

GetKeyState 函數(shù)返回一個(gè) short 值,若其值為負(fù),則按鍵被按下,否則未被按下。

? ??

????你也可根據(jù)?GetKeyState(Key) >> 8 (即其返回值的高序位)的值(-1 / 0)判斷按鍵狀態(tài)(按下 / 沒按下)

????你還可以用?GetAsyncKeyState(Key) >> 8?的值(-128 /?0)判斷按鍵狀態(tài)(按下 / 沒按下),這個(gè)函數(shù)讀取的是物理鍵狀態(tài),不管你怎么鼠標(biāo)鍵盤映射,它只讀取實(shí)際的按鍵狀態(tài)。


附:虛擬鍵碼對照表:

????https://baike.baidu.com/item/虛擬鍵碼

????或?https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes? ? ??

10.?檢查控制臺(tái)是否有鍵盤輸入 _kbhit(conio.h)

kbhit?為 _kbhit?函數(shù)的棄用別名,該函數(shù)仍受支持,但不建議使用。

?_kbhit 函數(shù)檢查控制臺(tái)是否有最近的擊鍵。如果函數(shù)返回一個(gè)非零值,則緩沖區(qū)中正在等待擊鍵。然后程序可以調(diào)用 _getch 或 _getche 來獲取擊鍵。


你可以進(jìn)行如下測試:

11. 讀取鍵盤輸入 _getch(conio.h)

getch 為 _getch 函數(shù)的棄用別名,該函數(shù)仍受支持,但不建議使用。

_getch 在 Windows 平臺(tái)下從控制臺(tái)無回顯地取一個(gè)字符,返回值為 int 類型。


注意在讀取功能鍵(function key)或方向鍵時(shí),這個(gè)函數(shù)必須調(diào)用兩次:第一次調(diào)用返回 0 或 0xE0(即224),第二次調(diào)用返回實(shí)際的鍵碼。


你可以進(jìn)行如下測試:

12. 設(shè)置控制臺(tái)字體大小(windows.h)

13. 蜂鳴 Beep(windows.h)

通過控制臺(tái)揚(yáng)聲器播放蜂鳴聲。

當(dāng)然,輸出轉(zhuǎn)義字符 '\a'?也可實(shí)現(xiàn)短促響鈴效果。


14.?檢索指定的系統(tǒng)指標(biāo)或系統(tǒng)配置設(shè)置 GetSystemMetrics?

(windows.h)

例如:


其它參數(shù)見:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsystemmetrics


15. 設(shè)置窗口的大小 / 位置 / Z軸順序?SetWindowPos?

(windows.h)

例如,我們可以置頂最頂層窗口(小工具版及該函數(shù)詳細(xì)教程看這里):

你可以在這里了解它的更多用處:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowpos


16. 窗口顯示 ShowWindow?(windows.h)

示例:

更多參數(shù)見:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow


17. 合成擊鍵事件?keybd_event(windows.h)

注:此函數(shù)已被取代,請改用SendInput。由于它使用起來很方便,我還是介紹一下吧。

通常我們只需要使用第一個(gè)和第三個(gè)參數(shù)(0 / KEYEVENTF_KEYUP)。下面是示例(選自百度百科)

18. 合成鼠標(biāo)事件?mouse_event(windows.h)

注:此函數(shù)已被取代,請改用SendInput。由于它使用起來很方便,我還是介紹一下吧。

其中 dwFlags?可以是下列值的某種組合:

示例:

(夾帶私貨)我用這玩意兒做過一個(gè)連點(diǎn)器。

19. 合成鍵盤/鼠標(biāo)事件?SendInput(windows.h)

該函數(shù)返回值是成功插入操作事件的個(gè)數(shù)。如果插入出錯(cuò)可以利用 GetLastError 來查看錯(cuò)誤類型。

注意到插入的是 INPUT 結(jié)構(gòu)的事件。故應(yīng)該繼續(xù)查看 INPUT 的相關(guān)內(nèi)容。

其中 type 可以為如下值:

https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-input

下面是一個(gè)實(shí)例(改自 Microsoft Docs)

20.?彈出模態(tài)對話框 MessageBox(windows.h)

其中最后一個(gè)參數(shù) uType 可以為下列標(biāo)志組中標(biāo)志的組合,指定下列標(biāo)志中的一個(gè)來顯示消息框中的按鈕以及圖標(biāo):

· 按鈕:

· 圖標(biāo):

返回值:


示例 1:

效果

示例 2:

效果

21. 設(shè)置控制臺(tái)光標(biāo)信息?SetConsoleCursorInfo (windows.h)

22. 生成偽隨機(jī)數(shù)(低質(zhì)量)?rand?(stdlib.h)

?返回從 0 到 RAND_MAX?(32767)?范圍內(nèi)的一個(gè)偽隨機(jī)整數(shù)(低質(zhì)量)。

該 rand 函數(shù)生成已知序列,不適合用作加密函數(shù)。 若要生成加密型更安全的隨機(jī)數(shù),請使用 rand_s 或使用 <random>?中 C++ 標(biāo)準(zhǔn)庫中聲明的函數(shù)。

可以在此之前使用 srand?函數(shù)將隨機(jī)數(shù)種子設(shè)置為 time(nullptr),否則每次運(yùn)行將產(chǎn)生同樣的結(jié)果。

返回MIN~MAX中一個(gè)隨機(jī)整數(shù)?:

還可得到小于1的非負(fù)浮點(diǎn)數(shù):

關(guān)于該函數(shù)的風(fēng)險(xiǎn)及優(yōu)化(視頻):https://learn.microsoft.com/zh-cn/events/goingnative-2013/rand-considered-harmful

23. 生成偽隨機(jī)數(shù)(高質(zhì)量)?random)

示例1:隨機(jī)的unsigned整數(shù)(種子為time(nullptr))

示例2:隨機(jī)的0~9整數(shù)(種子為time(nullptr))

主函數(shù)中 uniform_int_distribution 可替換為:

https://learn.microsoft.com/zh-cn/cpp/standard-library/random?view=msvc-170#distributions

示例3:泊松分布

運(yùn)行結(jié)果

了解更多:https://learn.microsoft.com/zh-cn/cpp/standard-library/random?view=msvc-170


主要參考資料來自 Microsoft Docs(https://docs.microsoft.com/)百度百科(https://baike.baidu.com/)。我沒勾原創(chuàng)聲明是因?yàn)槲液芏嗟胤蕉际且玫哪抢锩娴脑挘医^大部分代碼并非原創(chuàng)。



C++ 控制臺(tái):寫小應(yīng)用/小游戲時(shí)各種技術(shù)上所需的小代碼之合集(目前共23個(gè))的評(píng)論 (共 條)

分享到微博請遵守國家法律
积石山| 台山市| 邢台市| 齐齐哈尔市| 福安市| 和平区| 汉川市| 旌德县| 兴仁县| 贺兰县| 泰州市| 澄迈县| 内黄县| 石狮市| 汝城县| 南汇区| 蕲春县| 连云港市| 宁陵县| 云和县| 唐河县| 锦州市| 瑞安市| 通城县| 交城县| 靖宇县| 虹口区| 汝阳县| 徐水县| 玉田县| 土默特左旗| 江达县| 三门县| 定远县| 阿城市| 涿鹿县| 吴堡县| 永吉县| 本溪| 华阴市| 高碑店市|