c語言獲取句柄
① 誰能解釋一下 HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE))在c語言中是什麼意思
上句執行後,定義了一個句柄變數hConsole,將其賦值為GetStdHandle((STD_OUTPUT_HANDLE)),即標准輸出的句柄。
例如:
#include <stdio.h>
#include <windows.h>
int main(void)
{
HANDLE consolehwnd; //創建句柄,詳細句柄知識,請網路一下或查MSDN
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE); //實例化句柄
SetConsoleTextAttribute(consolehwnd, FOREGROUND_RED);//設置字體顏色
printf("hello ");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY | FOREGROUND_GREEN);
printf("world!
");
getchar();
SetConsoleTextAttribute(consolehwnd,BACKGROUND_INTENSITY |BACKGROUND_BLUE);
printf("It is really beautiful!
");
return 0;
}
(1)c語言獲取句柄擴展閱讀:
注意事項
SetConsoleTextAttribute()函數是一個API設置字體顏色和背景色的函數。參數表中使用兩個屬性(屬性之間用,隔開)。GetStdHandle()和FOREGROUND_*或BACKGROUND_*。*值為INTENSITY或RED或GREEN或BLUE。第一個屬性獲得句柄(即要設置顏色的地方),第二個屬性設置顏色。屬性相加是在屬性值中間加「|」隔開即可。
GetStdHandle(STD_OUTPUT_HANDLE)獲得句柄。
FOREGROUND_INTENSITY表示設置前景色為高亮顯示。
FOREGROUND_RED表示設置前景色為紅色,即字體顏色為紅色。
FOREGROUND_GREEN表示設置前景色為綠色,即字體顏色為綠色。
FOREGROUND_BLUE表示設置前景色為藍色,即字體顏色為藍色。
BACKGROUND_INTENSITY表示設置背景色為高亮顯示。
BACKGROUND_RED 表示設置背景色為紅色。
BACKGROUND_GREEN表示設置背景色為綠色。
BACKGROUND_BLUE表示設置背景色為藍色。
說明:在使用時要在預處理中包含window.h頭文件。
② C語言中對文件的操作
所謂打開,是取得文件的句柄號。C用fopen函數來打開文件,返回這個文件的句柄(一個尋找文件的變數,其中包含文件大小、文件類型、文件位置等信息)。「打開」後,文件內內容並不會保存在內存中,只有在使用的時候,從儲存器上提取內容。
不知道你所說的輸入字元是什麼意思,如果指的是將內容保存在文件中的話,通常有以下幾種方式。Type1:在文件末尾插入數據。Type2:將文件所有位元組集讀入內容,作為修改,然後重新保存在儲存器中。
打開只是個代名詞,比如說一個Box(箱子),你想在箱子里取東西,或者是放東西,都需要先把箱子打開。如果你想深入了解,那你需要研究文件系統(PS:這是操作系統核心的一部分)