conio.h 不包含 textcolor()?

发布于 2024-12-23 10:26:25 字数 181 浏览 2 评论 0原文

我一直在研究在我用 C 编写的 DOS 程序中使用颜色。我被告知 conio.htextcolor() 函数,但是当我在我的代码中使用它,编译器/链接器会向我抛出错误,说我对该函数有未定义的引用。

conio.h 实际上有这个功能还是有人告诉我的?

I've been looking at using colours in a DOS program I'm writing in C. I was told that conio.h has the textcolor() function, but when I use it in my code, the compiler/linker throws errors at me saying I've an undefined reference to the function.

Does conio.h actually have this function or have I been told bull?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我偏爱纯白色 2024-12-30 10:26:25

不,conio.h 库没有定义 textcolor 函数。
定义该函数的方法之一如下(包括 windows.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));
}

No, the conio.h library does not have the textcolor function defined.
One of the ways that that function could be defined is the following (include the windows.h library):

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));
}
女中豪杰 2024-12-30 10:26:25

这是 Turbo C/C++ 编译器功能。它位于 conio.h 标头中,但如果您使用的是 Turbo C/C++ 编译器。

请参阅 Turbo C/C++ Compiler 2.0 文档的第 384 页,其中显示:

功能在文本模式下选择新的字符颜色。

语法

#include ;
无效文本颜色(int newcolor); 

conio.h 中的原型

备注:textcolor选择前景色。这
随后写入的所有字符的前景色
由控制台输出函数将给出颜色
由新颜色。您可以使用符号来指定颜色
conio.h 中定义的常量。如果使用这些常量,
您必须包含 conio.h

此功能不会影响当前的任何字符
屏幕,但仅限使用直接控制台显示的屏幕
调用 textcolor 后的输出(例如 cprintf)。

[...]

另请参阅:在 Turbo C++ 中为文本着色

It's a Turbo C/C++ Compiler function. It is in the conio.h header, but only if you're using a Turbo C/C++ Compiler.

See page 384 of the Turbo C/C++ Compiler 2.0 docs, which says:

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.

[...]

See also: Colorizing text in Turbo C++.

辞旧 2024-12-30 10:26:25

检查 textcolor 库 库,它可能正是您所需要的。

一个示例,展示如何使用它:

#include<stdio.h>
#include<conio.h>
main()
{
   textcolor(RED);
   cprintf("C programming");

   getch();
   return 0;
}

Check the textcolor library library, it may do just what you need.

An example, showing how to use it:

#include<stdio.h>
#include<conio.h>
main()
{
   textcolor(RED);
   cprintf("C programming");

   getch();
   return 0;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文