نوشته های برچسب شده:getch در لینوکس

افزودن 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;
}
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • FriendFeed
  • Identi.ca
  • PDF
  • Ping.fm
  • Technorati
  • Print
  • Add to favorites

Panorama Theme by Themocracy