我想用getch();在cygwin。 所以我搜索方式,添加代码“conio.h”。
#include <termios.h>
#include <unistd.h>
#include <stdio.h>
/* reads from keypress, doesn't echo */
int getch(void)
{
struct termios oldattr, newattr;
int ch;
tcgetattr( STDIN_FILENO, &oldattr );
newattr = oldattr;
newattr.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newattr );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );
return ch;
}
/* reads from keypress, echoes */
int getche(void)
{
struct termios oldattr, newattr;
int ch;
tcgetattr( STDIN_FILENO, &oldattr );
newattr = oldattr;
newattr.c_lflag &= ~( ICANON );
tcsetattr( STDIN_FILENO, TCSANOW, &newattr );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );
return ch;
}
保存此代码“conio.h”后,我无法使用getch();. 错误信息是 致命错误:conio.h:没有这样的文件或目录 #包括 ^ 编译终止。
如何解决?
答案 0 :(得分:0)
任何其他想要使用conio.c文件中的函数的文件(应该是您发布的文件的相应文件扩展名)都需要具有这些函数的原型。
具体来说,您需要第二个文件conio.h,它看起来像;
#ifndef CONIO_H
#define CONIO_H
int getch( void );
int getche( void );
#endif // CONIO_H
在任何想要使用这些功能的文件中,conio.h文件必须是#include“conio.h”