头文件在C中不起作用

时间:2014-02-05 18:15:41

标签: c mingw header-files

我正在使用Dev-CPP(但在C中编程),并且头文件不起作用。我去了编译器选项;目录; c包含并检查目录是否正确,它是。包含文件存储在C:\ Dev-Cpp \ include中,并且设置为接收它们。

例如:

#include <conio.h>

int main(int argc, char *argv[])
{
  textcolor(1);

  printf("Why won't header files work? \n");

  system("PAUSE");  
  return 0;
}

我已尝试过其他几个头文件,但它们也无法正常工作。我确定答案非常明显,但我显然太愚蠢了。我也使用MinGW作为编译器,(标配dev-cpp)。请帮我。

2 个答案:

答案 0 :(得分:2)

conio.h头文件不能与dev cpp一起使用,因为它不是c标准的一部分。 http://www.bloodshed.net/dev/faq.html

答案 1 :(得分:1)

textcolor()很老。(也许是borland c ++?)

e.g。像这样重新定义

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

void textcolor(unsigned short color){
    HANDLE hStdout;
    WORD wAttributes;
    CONSOLE_SCREEN_BUFFER_INFO csbi;

    hStdout = GetStdHandle(STD_OUTPUT_HANDLE);

    GetConsoleScreenBufferInfo(hStdout, &csbi);

    wAttributes = color ;
    if (color & 0x08) wAttributes |= FOREGROUND_INTENSITY ;

    SetConsoleTextAttribute(hStdout, wAttributes);
}

/*
#define FOREGROUND_BLUE      0x0001
#define FOREGROUND_GREEN     0x0002
#define FOREGROUND_RED       0x0004
#define FOREGROUND_INTENSITY 0x0008

#define BACKGROUND_BLUE      0x0010
#define BACKGROUND_GREEN     0x0020
#define BACKGROUND_RED       0x0040
#define BACKGROUND_INTENSITY 0x0080
*/

int main(int argc, char *argv[]){
    textcolor(1);
//  textcolor(FOREGROUND_BLUE);
    printf("FOREGROUND_BLUE \n");

    textcolor(4);
    printf("FOREGROUND_RED \n");

    textcolor(7);
    system("PAUSE");  
    return 0;
}