我正在使用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时,它会说“有些插件丢失了”,或类似的东西。 任何人都可以帮忙??
答案 0 :(得分:1)
conio.h
。
答案 1 :(得分:0)
conio.h
不支持 gcc
。 Here虽然是conio.h
的{{1}}实现。
答案 2 :(得分:0)
conio.h
。您可以尝试curses
库,该库支持text-user interface的创建。
有许多诅咒,你可以使用ncurses或pdcurses库和代码块。
答案 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 功能几乎完整。看起来效果不错。