Conio.h无法在codeblocks中工作(未定义的引用...)

时间:2014-03-02 09:14:31

标签: c codeblocks

我正在使用Code :: Blocks,事情是我多次尝试修复Conio库以及其他一些库的问题。我每次使用clrscr(); textcolor();或其他任何内容时都会使用

 Undefined reference to textcolor.

例如,这个简单的程序应该以特定的颜色显示总和,但是虽然我之前看到它有用,但它没有用完。

#include <stdio.h>
#include <conio.h>
int fx(int x,int y,int z)
{
   return x+y+z;
}
int main()
{
   int a,b,c;
printf("Enter three values to a, b and c.\n");
scanf("%d%d%d",&a,&b,&c);
int total=fx(a,b,c);
textcolor(14);
printf("Output ="); cprintf(" %d",&total);
getch();
return 0;
}

P.S。:我正在使用GNU GCC。有时候当我选择另一个编译器或者只是打开Code :: Blocks时,它会说“有些插件丢失了”,或类似的东西。 任何人都可以帮忙??

5 个答案:

答案 0 :(得分:1)

gcc不支持

conio.h

答案 1 :(得分:0)

conio.h不支持

gccHere虽然是conio.h的{​​{1}}实现。

答案 2 :(得分:0)

gcc不支持

conio.h。您可以尝试curses库,该库支持text-user interface的创建。 有许多诅咒,你可以使用ncursespdcurses库和代码块。

答案 3 :(得分:0)

原始Borland conio.h中的一些功能很容易复制 - 我最近从Turbo-C程序(从1990年开始!)移植到gcc,并找到了getch和getche的版本(用于Linux)我可以在线使用(但不是C ++版本,它不会使用gcc命令进行编译)。我编写了自己的cgets版本,但还没有发现需要从该头文件创建自己版本的其他函数。

char getch()
{
  char c; // This function should return the keystroke without allowing it to echo on screen

  system("stty raw");    // Raw input - wait for only a single keystroke
  system("stty -echo");  // Echo off
  c = getchar();
  system("stty cooked"); // Cooked input - reset
  system("stty echo");   // Echo on - Reset
  return c;
}

char getche()
{
  char c; // This function should return the keystroke, with echo to screen

  system ("stty raw");      // Raw input - wait for only a single keystroke
  c = getchar();
  system ("stty cooked");   // Cooked input - reset
  return c;
}

char *cgets(char *buf)

/* gets a string from console and stores it in *buf; buf[0] must be initialized to maximum string size and *buf must
be declared by caller to maximum string size plus 3 bytes, to accommodate string, terminating null, size byte in buf[0]
and length of entered string in buf[1]; sets buf[1] to length of string entered and returns pointer to buf[2] */

{

    /* declare and initialize internal variables */

  unsigned int count = 2;   /* start at 2 because [0] is max size including terminator and [1] returns actual */
                /* entry size, also including terminating null */
  char input = '\0';        /* initialize to null */

/* start actual function */

  while (count < buf[0] + 2)    /* while within permitted string length -- +2 for size control bytes */
  {
    input=getch();      /* get a single character, without echo */
    if (input != (char) 13) /* not cr/enter key -- presumed meaningful input */
    {
      printf("%c",input);
      buf[count++] = input; /* store character and increment counter */
    }
      else
      {
    buf[count] = '\0';  /* change cr/enter key to terminating null */
    buf[1]=(char) count - 2;/* store length of entered string (including terminating null) */
    count = buf[0] + 2; /* terminate entry loop -- +2 for size control again */
      }

    }

    return &buf[2];     /* return pointer to start of string */
}

要记住的关键是,包含的文件(例如conio.h)不必预先编译;如果它只是更多的C源代码,它就可以发挥作用。

答案 4 :(得分:0)

试试这个库:https://sourceforge.net/projects/coniohcloneturboccpp/

适用于 Windows 和 Linux 的 CONIO 功能几乎完整。看起来效果不错。