国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【c++】設(shè)置控制臺(tái)窗口字體顏色和背景色(system和SetConsoleTextAttribute函數(shù) )

這篇具有很好參考價(jià)值的文章主要介紹了【c++】設(shè)置控制臺(tái)窗口字體顏色和背景色(system和SetConsoleTextAttribute函數(shù) )。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

編譯后彈出的黑框框(exe 可執(zhí)行文件)總是黑底白字,在做實(shí)踐大作業(yè)時(shí)想到嘗試改變字體的顏色與背景色,搜索發(fā)現(xiàn)有systemSetConsoleTextAttribute兩個(gè)函數(shù),各有長(zhǎng)處,詳細(xì)了解一下,為了以后的使用。

操作平臺(tái):Microsoft Visual Studio 2019?

[content]

system函數(shù) (Windows系統(tǒng))

函數(shù)功能

函數(shù)原型 (注:指令大小寫(xiě)均可)

函數(shù)參數(shù)規(guī)定

函數(shù)缺點(diǎn)

示例程序(system函數(shù))

SetConsoleTextAttribute函數(shù)??

函數(shù)頭文件?

函數(shù)功能?

函數(shù)原型

函數(shù)參數(shù)?

示例程序(SetConsoleTextAttribute函數(shù))


system函數(shù) (Windows系統(tǒng))

?系統(tǒng)函數(shù),不用引其他的頭文件

函數(shù)功能

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

  • DOS命令——指DOS操作系統(tǒng)的命令,是一種面向磁盤(pán)的操作命令,主要包括目錄操作類命令、磁盤(pán)操作類命令、文件操作類命令和其它命令。

?調(diào)用color函數(shù)可以改變控制臺(tái)的前景色和背景從而達(dá)到我們的目的,即設(shè)置默認(rèn)的控制臺(tái)前景和背景顏色。(還有以下功能舉例);

  • system("pause")可以實(shí)現(xiàn)凍結(jié)屏幕,便于觀察程序的執(zhí)行結(jié)果;
  • system("CLS")可以實(shí)現(xiàn)清屏操作。(清屏后原數(shù)據(jù)不會(huì)被清除)

函數(shù)原型 (注:指令大小寫(xiě)均可)

//system函數(shù)原型
int system(const char *command);
//system實(shí)現(xiàn)color功能的函數(shù)定義語(yǔ)句
system("color 01");  //設(shè)置背景為黑色,字體為藍(lán)色

函數(shù)參數(shù)規(guī)定

由函數(shù)原型可知system函數(shù)的參數(shù)為const char*類型,則使用時(shí)注意

  1. 【對(duì)于system函數(shù)而言】要在system的()內(nèi)加""
  2. 【對(duì)于color函數(shù)而言】在""內(nèi)color與所需輸入的顏色屬性中間用空格隔開(kāi),不能用逗號(hào),也不能直接輸入而不隔開(kāi)

錯(cuò)誤輸入?yún)?shù)時(shí)會(huì)出現(xiàn)的情況:

  • 直接輸入system("colorf4");而不隔開(kāi)時(shí)會(huì)出現(xiàn)如下:【c++】設(shè)置控制臺(tái)窗口字體顏色和背景色(system和SetConsoleTextAttribute函數(shù) )
  • 用逗號(hào)時(shí)會(huì)出現(xiàn)system(“color ”)的功能及使用方式;??
COLOR? [attr]
/*attr ? 指定控制臺(tái)輸出的顏色屬性*/

示例: "COLOR fc" 在亮白色上產(chǎn)生淡紅色(即背景為白色,字體為紅色)

//應(yīng)用示例
system("color f4"); //紅字白底

顏色屬性由兩個(gè)十六進(jìn)制數(shù)字指定——第一個(gè)對(duì)應(yīng)于背景,第二個(gè)對(duì)應(yīng)于前景(字體)。

每個(gè)數(shù)字可以為以下任何值(淡色與原色相差不大,但是試的時(shí)候仔細(xì)觀察一下亮度的確還是有差距的,大小寫(xiě)均可)

? 0 = 黑色 ? ? ? 8 = 灰色
  1 = 藍(lán)色? ? ?? 9 = 淡藍(lán)色
  2 = 綠色? ? ? ?A = 淡綠色
? 3 = 淺綠? ? ? ?B = 淡淺綠色
? 4 = 紅色? ? ? ?C = 淡紅色
? 5 = 紫色 ? ? ? D = 淡紫色
? 6 = 黃色 ? ? ? E = 淡黃色
? 7 = 白色 ? ? ? F = 亮白色

特別注意:?

①如果最初使用system("color")時(shí)沒(méi)有給定任何參數(shù)(此處的參數(shù)是指attr,即顏色屬性),此命令會(huì)將顏色還原到 CMD.EXE 啟動(dòng)時(shí)的顏色(即仍是原始的黑底白字)(這個(gè)值來(lái)自當(dāng)前控制臺(tái)窗口、/T 命令行開(kāi)關(guān)或 DefaultColor 注冊(cè)表值。)

②若在最后想把控制臺(tái)還原到最初的黑底白字,不給參數(shù)是無(wú)法實(shí)現(xiàn)這一功能的,只能使用?system("color 07");?還原到黑底白字,在最后使用system("color")不給參數(shù)是無(wú)法實(shí)現(xiàn)把顏色還原到黑底白字的;

③如果嘗試使用相同的前景和背景顏色來(lái)執(zhí)行COLOR 命令,COLOR 命令會(huì)將 ERRORLEVEL 設(shè)置為 1(即仍是黑底白字)。

函數(shù)缺點(diǎn)

運(yùn)行下面示例程序會(huì)發(fā)現(xiàn),system函數(shù)加上color函數(shù)這個(gè)指令后可以對(duì)控制臺(tái)文本屬性進(jìn)行改變,但是一改變就是整個(gè)控制臺(tái)發(fā)生變化,只能把控制臺(tái)改成一種顏色,無(wú)法達(dá)到我們想要指定一行的文本發(fā)生顏色改變(即改成多種顏色)的效果,因此,有下面SetConsoleTextAttribute函數(shù),這個(gè)函數(shù)更加靈活。

示例程序(system函數(shù))

#include<iostream>
using namespace std;

int main() {
	string q;  //設(shè)置一個(gè)值便于觀察顏色變化  

	system("COLOR f9");  //此處大寫(xiě),設(shè)置為白底藍(lán)字
	cout << "hello" << endl;
	cout << "觀察中:";
	cin >> q;
	cout << endl;

	system("color 05");  //此處小寫(xiě),設(shè)置為黑底紫字
	cout << "hello" << endl;
	cout << "觀察中:";
	cin >> q;
	cout << endl;

	system("cls");  //試用system函數(shù)的其他指令提供的功能,也可以把這一行注釋掉
	cout << endl << "查看cls清屏后是否還能查看剛剛輸入的數(shù)據(jù)" << endl << "輸入的觀察值為  q = " << q << endl;

	system("color 07");   //還原為最初顏色,黑底白字
	cout << endl << "觀察結(jié)束,隨便輸入啦:";
	cin >> q;
	return 0;
}

SetConsoleTextAttribute函數(shù)??

函數(shù)頭文件?

#include<Windows.h>

函數(shù)功能?

設(shè)置控制臺(tái)文本屬性

函數(shù)原型

BOOL SetConsoleTextAttribute(
? ? ? HANDLE hConsoleOutput,
? ? WORD ??wAttributes
);?

函數(shù)參數(shù)?

hConsoleOutput??——?控制臺(tái)屏幕緩沖區(qū)的句柄

這里我們引入GetSTDHandle函數(shù)來(lái)作為參數(shù)?

?GetStdHandle(nStdHandle)是返回標(biāo)準(zhǔn)的輸入、輸出或錯(cuò)誤的設(shè)備的句柄,也就是獲得輸入、輸出/錯(cuò)誤的屏幕緩沖區(qū)的句柄。

nStdHandle的值 含義
STD_INPUT_HANDLE 標(biāo)準(zhǔn)輸入的句柄
STD_OUTPUT_HANDLE 標(biāo)準(zhǔn)輸出的句柄
STD_ERROR_HANDLE 標(biāo)準(zhǔn)錯(cuò)誤的句柄

?wAttributes??——?字符屬性,包括顏色和?DBCS?(點(diǎn)擊查詢DBCS雙字節(jié)字符)

Attribute 含義 對(duì)應(yīng)數(shù)字
FOREGROUND_BLUE 文本顏色包含藍(lán)色。 1
FOREGROUND_GREEN 文本顏色包含綠色。 2
FOREGROUND_RED 文本顏色包含紅色。 4
FOREGROUND_INTENSITY 文本顏色增強(qiáng) 8
BACKGROUND_BLUE 背景色包含藍(lán)色。 16
BACKGROUND_GREEN 背景色包含綠色。 32
BACKGROUND_RED 背景色包含紅色。 64
BACKGROUND_INTENSITY 背景色增強(qiáng)。 128
COMMON_LVB_LEADING_BYTE 前導(dǎo)字節(jié)。 \
COMMON_LVB_TRAILING_BYTE 尾隨字節(jié)。 \
COMMON_LVB_GRID_HORIZONTAL 頂部水平。 \
COMMON_LVB_GRID_LVERTICAL 左垂直。 \
COMMON_LVB_GRID_RVERTICAL 右垂直。 \
COMMON_LVB_REVERSE_VIDEO 反轉(zhuǎn)前景和背景屬性。 \
COMMON_LVB_UNDERSCORE 下劃線。 \

前景屬性指定文本顏色;?背景屬性指定用于填充單元格背景的顏色;?其他屬性與?DBCS?一起使用。

應(yīng)用程序可以將前景常量和背景常量組合起來(lái)以實(shí)現(xiàn)不同的顏色,這個(gè)時(shí)候考察的就是繪畫(huà)能力啦(紅色+綠色= 黃色 ps:可以加高亮哦),使用 | 符號(hào)。

例如,以下組合實(shí)現(xiàn):藍(lán)色背景上的亮青色文本。

FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE

如果沒(méi)有指定背景常量,則背景為黑色,如果沒(méi)有指定前景常量,則文本為黑色。

例如,以下組合實(shí)現(xiàn):白色背景上的黑色文本。 為背景指定了紅色、綠色和藍(lán)色,它們組合成白色背景。 沒(méi)有為前景指定標(biāo)志顏色,因此它為黑色。

BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED

更多詳情見(jiàn):??控制臺(tái)屏幕緩沖區(qū)

?【注】關(guān)于wAttributes?字符屬性參數(shù)的寫(xiě)法有三種,如下:

//BACKGROUND代表背景,F(xiàn)OREGROUND代表前景
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);//設(shè)置黃色(紅色+綠色)
//十六進(jìn)制數(shù)字
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x04);  //紅色
//十進(jìn)制數(shù)字
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);  //綠色

示例程序(SetConsoleTextAttribute函數(shù))

#include<Windows.h>
int main() {
	cout << "Hello    ——this is the prime color" << endl;
	cout << "先來(lái)看一哈青色的字兒:";
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);//設(shè)置青色
	cout << endl << "Hello World!" << endl;

	string q;
	cout << "來(lái)嘗試隨便輸入一下吧(給你一個(gè)藍(lán)底白字):";
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); //設(shè)置藍(lán)底白字
	cin >> q;

	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);//沒(méi)有給其他顏色,只給了文本增強(qiáng),只有亮度稍微改變一下
	cout <<endl<< "zai隨便輸入一下吧" << endl;
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);//設(shè)置白色
	cin >> q;
	cout << endl << "自己嘗試一下,寫(xiě)著玩兒叭,拜拜咯——" << endl;

	return 0;
}

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-457328.html

?

到了這里,關(guān)于【c++】設(shè)置控制臺(tái)窗口字體顏色和背景色(system和SetConsoleTextAttribute函數(shù) )的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C#控制臺(tái)應(yīng)用程序如何添加窗口關(guān)閉事件?

    C#控制臺(tái)應(yīng)用程序如何添加窗口關(guān)閉事件?

    公司有一個(gè)控制臺(tái)應(yīng)用程序,在關(guān)閉控制臺(tái)應(yīng)用程序窗口前,想處理一下業(yè)務(wù)邏輯。還有比如誤操作關(guān)閉了,或者像消息隊(duì)列啟動(dòng)了發(fā)送消息提醒,那關(guān)閉了窗口代表控制臺(tái)應(yīng)用銷毀了,也需要發(fā)送消息通知。那這個(gè)時(shí)候添加關(guān)閉窗口事件就派上用場(chǎng)了。 很多小伙伴問(wèn),有沒(méi)

    2024年02月13日
    瀏覽(27)
  • git推薦:IDEA控制臺(tái)改為git窗口,直接在IDEA中使用git窗口,巨爽

    git推薦:IDEA控制臺(tái)改為git窗口,直接在IDEA中使用git窗口,巨爽

    File —— Settings Tools —— Terminal 更改 Shell path: D:xxxGitgit-bash.exe 打開(kāi) Terminal即可彈出git窗口 不用關(guān)閉即可,再次使用,點(diǎn)擊 Terminal

    2024年02月06日
    瀏覽(20)
  • PyCharm 調(diào)試過(guò)程中控制臺(tái) (Console) 窗口內(nèi)運(yùn)行命令 - 實(shí)時(shí)獲取中間狀態(tài)
  • python selenium 運(yùn)行driver時(shí)一直彈出控制臺(tái)CMD窗口怎么辦

    python selenium 運(yùn)行driver時(shí)一直彈出控制臺(tái)CMD窗口怎么辦

    1.python selenium 運(yùn)行driver時(shí)一直彈出控制臺(tái)CMD窗口,且不斷報(bào)以下錯(cuò)誤應(yīng)該怎么處理? DevTools listening on ws://127.0.0.1:51303/devtools/browser/6d5f8d32-1e30-4749-ad54-17f08ee3a983 真的非常影響心情?。。。? 2.一直在網(wǎng)上搜索,按照大家所說(shuō)的用以下代碼還是不行: options = webdriver.ChromeOptions(

    2024年02月11日
    瀏覽(88)
  • Qt配置設(shè)置,修改全文字體大小顏色,背景顏色

    Qt配置設(shè)置,修改全文字體大小顏色,背景顏色

    這是完成時(shí)的demo,選擇所需。 點(diǎn)擊確認(rèn)修改,全局修改,效果第二張圖。 在沒(méi)有點(diǎn)擊確認(rèn)修改時(shí),字體等按鈕的改變只會(huì)在文本框里面體現(xiàn)出來(lái)。點(diǎn)擊確認(rèn)才會(huì)修改全局的東西。點(diǎn)擊恢復(fù)默認(rèn)時(shí),字體字號(hào)顏色控件全部恢復(fù)初始狀態(tài),當(dāng)點(diǎn)擊確認(rèn)修改,全局才會(huì)改為初始狀

    2024年02月11日
    瀏覽(19)
  • C++控制臺(tái)打飛機(jī)小游戲

    C++控制臺(tái)打飛機(jī)小游戲

    我終于決定還是把這個(gè)放出來(lái)。 視頻在這:https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg==.html 具體信息主界面上都有寫(xiě)。 按空格暫停,建議暫停后再升級(jí)屬性。 記錄最高分的文件進(jìn)行了加密。 有boss(上面視頻2分47秒)。 挺好玩的。 可能有bug,不想改了,整體體驗(yàn)不錯(cuò)就行了。 更多

    2024年02月05日
    瀏覽(16)
  • C++制作安裝包【1】—— 控制臺(tái)實(shí)現(xiàn)

    C++制作安裝包【1】—— 控制臺(tái)實(shí)現(xiàn)

    之前用NSIS的時(shí)候發(fā)現(xiàn)不方便自制UI,找了其他的安裝包開(kāi)發(fā)框架,開(kāi)發(fā)手感還是不好,功能殘缺不一。我就想 如何使用純代碼的方式制作安裝包 呢?經(jīng)歷了眾多艱難才終于摸出方法。網(wǎng)上現(xiàn)有的文章都是用NSIS,Windows Installer等等現(xiàn)成框架制作安裝包的。所以我另開(kāi)一個(gè)專欄

    2024年02月04日
    瀏覽(20)
  • C++控制臺(tái)實(shí)現(xiàn)簡(jiǎn)化版吃雞游戲

    直接上代碼 這個(gè)游戲是一個(gè)簡(jiǎn)化版的吃雞游戲。你需要通過(guò)鍵盤(pán)輸入W、A、S、D來(lái)移動(dòng)玩家位置,并擊敗敵人來(lái)獲得積分。當(dāng)你累計(jì)得分達(dá)到5分時(shí),游戲結(jié)束,你將獲得勝利。地圖中的P表示玩家位置,E表示敵人位置,.表示空白位置。每次擊敗敵人后,將會(huì)生成一個(gè)新的敵人

    2024年02月16日
    瀏覽(19)
  • c++控制臺(tái)雙人格斗小游戲(測(cè)試版)

    嗨嗨嗨,又是我! 我又來(lái)發(fā)博客啦! 最近太閑了,又做了個(gè)small游戲:小人-格斗(測(cè)試版) 記得加上gamesio.h哦

    2024年02月12日
    瀏覽(20)
  • FinalShell SSH工具安裝教程及編輯窗口修改背景顏色,自定義背景圖片,修改字體,修改快捷鍵(詳細(xì)圖文教程)

    FinalShell SSH工具安裝教程及編輯窗口修改背景顏色,自定義背景圖片,修改字體,修改快捷鍵(詳細(xì)圖文教程)

    FinalShell 在 Windows 上提供了一個(gè)方便、安全、功能完備的遠(yuǎn)程管理工具。它的中文支持和自定義功能讓其適合國(guó)內(nèi) Linux 系統(tǒng)管理者使用。與 Xshell 等軟件相比,F(xiàn)inalShell 更注重功能實(shí)用性。 參考其它博主的安裝教程,鏈接為:添加鏈接描述 下載FinalShell安裝包的鏈接:添加鏈接

    2024年02月12日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包