انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: امیرمهری در 23 دی 1388، 07:51 ب‌ظ

عنوان: افزودن getch به لینوکس
ارسال شده توسط: امیرمهری در 23 دی 1388، 07:51 ب‌ظ
یکی از مشکلاتی که برای بسیاری از برنامه نویسان تازه مهاجرت کرده از ویندوز به لینوکس پیش میاد، نبودن کتابخانه conio.h و در پی آن نبودن تابع پرکاربرد ()getch است. برای رفع این مشکل کافی چند دقیقه صبر کنید.

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


01 #ifndef LINCH_H_
02 #define LINCH_H_
03 #include <termios.h>
04 #include <unistd.h>
05 int getch(void)
06 {
07 struct termios oldt,
08 newt;
09 int ch;
10 tcgetattr( STDIN_FILENO, &oldt );
11 newt = oldt;
12 newt.c_lflag &= ~( ICANON | ECHO );
13 tcsetattr( STDIN_FILENO, TCSANOW, &newt );
14 ch = getchar();
15 tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
16 return ch;
17 }
18 #endif /* LINCH_H_ */


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

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

01 #include <iostream>
02 using namespace std;
03 #include <linch>
04 void main()
05 {
06 char ch;
07 cout<<"Please enter a char >>> ";
08 ch=getch();
09 cout<<ch;
10 }

منبع

http://blog.anarnet.ir/1388/09/add-getch-to-linux/
عنوان: پاسخ به: افزودن getch به لینوکس
ارسال شده توسط: AliRezaiMi در 23 دی 1388، 08:01 ب‌ظ
ممنون از مطلبتون
بدردم خورد!
عنوان: پاسخ به: افزودن getch به لینوکس
ارسال شده توسط: gbmtoday در 23 دی 1388، 11:17 ب‌ظ
+1
عنوان: پاسخ به: افزودن getch به لینوکس
ارسال شده توسط: امیرمهری در 27 دی 1388، 07:49 ق‌ظ
البته  این  هم   هست

http://sourceforge.net/projects/linux-conioh/


http://en.wikipedia.org/wiki/Conio.h
عنوان: پاسخ به: افزودن getch به لینوکس
ارسال شده توسط: arastoo.s در 05 بهمن 1388، 01:23 ب‌ظ
دوست عزیز دستت درد نکنه که این پست زیبا و با محتوا رو زدی اما میتونیم از getchar() استفاده کنیم که در خود  پیش پردازنده stdio.h موجود است