【问题标题】:Attempting to use conio.h's functions (specifically textbackground)尝试使用 conio.h 的函数(特别是 textbackground)
【发布时间】:2012-10-19 23:37:53
【问题描述】:

遇到问题后,我一直在研究 C 头文件 conio.h。我已将头文件包含在我的代码中(我在 Windows 上运行并使用 GCC 编译器),但似乎没有包含头文件,从而导致无法使用其功能。我错过了一步还是做错了什么?谢谢。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
    textbackground(RED);
    printf("Hello");
    return 0;
}

任何帮助将不胜感激。

控制台错误

C:\Users\Justin\Desktop\Project\gui\main.c||在函数'main'中:| C:\Users\Justin\Desktop\Project\gui\main.c|7|警告:隐式 函数'textbackground'的声明| C:\Users\Justin\Desktop\Project\gui\main.c|7|error: 'RED' undeclared (在这个函数中首次使用)| C:\Users\Justin\Desktop\Project\gui\main.c|7|错误:(每个未声明 标识符只报告一次| C:\Users\Justin\Desktop\Project\gui\main.c|7|error: 对于每个函数 它出现在。)| ||=== 构建完成:3 个错误,1 个警告 ===|

【问题讨论】:

  • 您是否遇到编译错误?如果是这样,它是什么?究竟是什么问题?
  • @CareyGregory 哎呀。编辑OP。
  • 检查标题的内容。那里可能有一些#ifdef。
  • 这可以追溯到上个世纪,textbackground 是 Borland 特有的功能。它已经停业了。

标签: c windows


【解决方案1】:

由于您在 Windows 上,我建议您使用

BOOL WINAPI SetConsoleTextAttribute(
  _In_  HANDLE hConsoleOutput,
  _In_  WORD wAttributes
);

以及来自wincon.h 的其他功能。我经常使用它们。它们工作正常。

【讨论】:

  • 不确定我是否将它与类似的功能混合在一起,但我发誓我在 SO 上的某个地方读到过,这是一种非常过时的方法?但我很可能在想别的东西……
  • 我不确定wincon.h 是否已过时。只要您以 Windows 为目标,就可以了。
  • 啊,我一定是搞错了。谢谢!
  • 是的,如果你确定你不关心可移植性,我会选择 Win32 函数。
  • @X33:换个说法,是什么让你认为 textbackground 是 conio.h 提供的函数?
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 2017-02-05
  • 2019-09-07
  • 2016-06-03
  • 2015-12-30
相关资源
最近更新 更多