2015-05-24 6 views
0

Я хочу использовать getch(); в cygwin. Итак, я ищу путь, добавьте код «conio.h».Как включить conio.h в cygwin?

#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: Нет такого файла или каталога #include ^ компиляция завершена.

Как это решить?

+1

Вы можете найти несколько решений здесь: Http: //unix.stackexchange .com/questions/126842/conio-h-file-missing-error – victor175

ответ

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» в любой файл, который хочет использовать эти функции

+0

Естественно, что компилятор должен быть применен к conio.c и вашему файлу, а компоновщик должен включать в себя как conio.o, так и yourfile.o, для файл conio.h, который будет найден во время этапа компиляции, компилятору необходимо знать путь к файлу conio.h. (в gcc -IpathToHeaderFile) – user3629249

 Смежные вопросы

  • Нет связанных вопросов^_^