افزودن getch به لینوکس

یکی از مشکلاتی که برای بسیاری از برنامه نویسان تازه مهاجرت کرده از ویندوز به لینوکس پیش میاد، نبودن کتابخانه conio.h و در پی آن نبودن تابع پرکاربرد ()getch است. برای رفع این مشکل کافی چند دقیقه صبر کنید.

gedit (و یا هر ویرایشگر متنی دیگری) را باز کنید و کد زیر را در آن کپی کنید:


#ifndef LINCH_H_
#define LINCH_H_
#include <termios.h>
#include <unistd.h>
int getch(void)
{
 struct termios oldt,
 newt;
 int ch;
 tcgetattr( STDIN_FILENO, &oldt );
 newt = oldt;
 newt.c_lflag &= ~( ICANON | ECHO );
 tcsetattr( STDIN_FILENO, TCSANOW, &newt );
 ch = getchar();
 tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
#endif /* LINCH_H_ */

حال این فایل را با نام linch، بدون پسوند در مسیر /usr/include/c++/4.3 ذخیره نمائید. تمام شد.

برای تست، برنامه زیر را امتحان میکنیم:

#include <iostream>
using namespace std;
#include <linch>
void main()
{
 char ch;
 cout<<"Please enter a char >>> ";
 ch=getch();
 cout<<ch;
}
این نوشته در برنامه‌نویسی, متن باز, گنو/لینوکس ارسال و , , برچسب شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>