是否可以在简单的ANSI C中为控制台输出着色?没有外部库?这可以在Windows,Linux或Mac OS X中完成吗?
小智 8
是的,在 Linux/Mac 中可以使用 ANSI C89。
您可以操纵文本的字体和颜色。使用以下命令:
printf("%c[0;00mHello, world!\n", 27); /* White color */
printf("%c[1;33mHello, world!\n", 27); /* Yellowish color */
printf("%c[1;34mHello, world!\n", 27); /* Blueish color */
Run Code Online (Sandbox Code Playgroud)
请注意“;”的左侧部分 (其中数字 0、1 是)操作文本字体,“;”的右侧部分 操纵颜色。
您可以自己尝试并找出新的颜色。
此代码使用"-ansi -pedantic"命令进行编译,没有警告或错误。
在基于 Windows 的系统中,您可以使用以下示例实现彩色控制台文本/文本背景:
#include <stdio.h>
#include <windows.h>
int main(void)
{
/* Point to our console */
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
int i = 0;
/* Iterate through colors */
for(; i < 255; i++)
{ /* i stands for color type: could refer to actual text color or background color of text */
SetConsoleTextAttribute(hConsole, i);
printf("Colorful text");
}
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
祝你好运!
只是简单的ANSI C?
不.C标准不假设标准输出是控制台或有颜色.
这可以在Windows,Linux或Mac OS X中完成吗?
是.请参阅如何以跨平台方式在Mac OS X上以彩色打印到控制台?适用于Linux和Mac OS X.
对于Windows,如果要避免使用外部库,则可能需要直接访问控制台功能.
| 归档时间: |
|
| 查看次数: |
12052 次 |
| 最近记录: |