我一直在研究如何在我用C语言编写的DOS程序中使用颜色。有人告诉我conio.h
有textcolor()
函数,但是当我在我的代码中使用它时,编译器/链接器会抛出错误,说我对该函数的引用未定义。
conio.h
实际上是否有这个函数,还是我被误导了?
我一直在研究如何在我用C语言编写的DOS程序中使用颜色。有人告诉我conio.h
有textcolor()
函数,但是当我在我的代码中使用它时,编译器/链接器会抛出错误,说我对该函数的引用未定义。
conio.h
实际上是否有这个函数,还是我被误导了?
void textcolor (int color)
{
static int __BACKGROUND;
HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
GetConsoleScreenBufferInfo(h, &csbiInfo);
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
color + (__BACKGROUND << 4));
}
这是一个Turbo C/C++编译器函数。它在conio.h头文件中,但仅当您使用Turbo C/C++编译器时才可用。
请参阅Turbo C/C++ Compiler 2.0 docs的第384页,其中写道:
Function Selects new character color in text mode.
Syntax
#include <conio.h> void textcolor(int newcolor);
Prototype in
conio.h
Remarks: textcolor selects the foreground character color. The foreground color of all characters subsequently written by the console output functions will be the color given by newcolor. You can give the color using a symbolic constant defined in conio.h. If you use these constants, you must include
conio.h
.This function does not affect any characters currently on the screen, but only those displayed using direct console output (such as cprintf) after textcolor has been called.
[...]
另请参阅:在Turbo C++中为文本着色。
请查看textcolor库库,它可能正好满足您的需求。
以下是一个示例,展示如何使用它:
#include<stdio.h>
#include<conio.h>
main()
{
textcolor(RED);
cprintf("C programming");
getch();
return 0;
}