如何在cygwin中包含conio.h?

时间:2015-05-24 17:22:08

标签: c cygwin getch

我想用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:没有这样的文件或目录  #包括                    ^ 编译终止。

如何解决?

1 个答案:

答案 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”