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:这是操作系统核心的一部分)