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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: مشکل با ncurses  (دفعات بازدید: 3389 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین sun

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
  • لینوکس یعنی دنیای ندانسته ها
مشکل با ncurses
« : 20 تیر 1388، 03:10 ب‌ظ »
سلام
من کتابخانه ncurses را با استفاده از دستور  sudo apt-get install libncurses5-dev  نصب کردم ام وقتی می خواهم که از توابعش استفاده کنم ارور می ده
مثلا برای برنامه زیر
#include <curses.h>
#include <iostream>
#include <string.h>
using namespace std;

int main() {
int a=5;
a=getch();
return 0;
}
بخ خط زی ارور میده
نقل‌قول
a=getch();
به امید روزی که آزادی را درک کنیم؟

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: مشکل با ncurses
« پاسخ #1 : 20 تیر 1388، 03:58 ب‌ظ »
#include <ncurses.h>نه curses.h (اولش حرف n)

آفلاین sun

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
  • لینوکس یعنی دنیای ندانسته ها
پاسخ به: مشکل با ncurses
« پاسخ #2 : 20 تیر 1388، 10:17 ب‌ظ »
این هم جواب نداد . این ارور را می دهد
/home/amin/.workspace/ty/Debug/../src/ty.cpp:15: undefined reference to `stdscr'
/home/amin/.workspace/ty/Debug/../src/ty.cpp:15: undefined reference to `wgetch'

و کد برنامه
#include <ncurses.h>
#include <iostream>
#include <string.h>
using namespace std;

int main() {
int x=6;
x=getch();
return 0;
}
به امید روزی که آزادی را درک کنیم؟

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: مشکل با ncurses
« پاسخ #3 : 21 تیر 1388، 03:12 ق‌ظ »
اوپشن lncurses- یا  lcurses- رو به gcc بدید.

آفلاین sun

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
  • لینوکس یعنی دنیای ندانسته ها
پاسخ به: مشکل با ncurses
« پاسخ #4 : 21 تیر 1388، 12:06 ب‌ظ »
چه جوری باید این آپشن را به gcc داد
به امید روزی که آزادی را درک کنیم؟

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: مشکل با ncurses
« پاسخ #5 : 21 تیر 1388، 12:25 ب‌ظ »
چه جوری باید این آپشن را به gcc داد
چه جوری؟! :o شما چجوری برنامه رو کامپایل می‌کنید؟! اگه C باشه با gcc
gcc -lncurses example.c -o exampleاگه هم ++C باشه با ++g
g++ -lncurses example.cpp -o example

آفلاین sun

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
  • لینوکس یعنی دنیای ندانسته ها
پاسخ به: مشکل با ncurses
« پاسخ #6 : 21 تیر 1388، 02:19 ب‌ظ »
من با eclipse برنامه می نویسم و در مورد برای همین زیاد به ساختار gcc وارد نیستم
من این برنامه را کامپایل کردم بدون ارور
#include <ncurses.h>
#include <iostream>
#include <string.h>
using namespace std;

int main() {
int x=6;

cout<<"start\n";
getch();
cout<<"end\n";
return 0;
}
اما در عمل وقتی برنامه را ران می کنم از تابع getch می پرد و اجراش نمی کند
به امید روزی که آزادی را درک کنیم؟

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: مشکل با ncurses
« پاسخ #7 : 21 تیر 1388، 07:49 ب‌ظ »
خب ncurses طرز استفادهٔ بخصوصی داره که باید یاد بگیرید. مثل conio.h داس نیست، فرق داره.
#include <ncurses.h>
#include <iostream>
#include <string.h>
using namespace std;

int main() {
int x=6;

initscr();
noecho();

printw("Press a key to continue\n");
//mvprintw(0, 0, "Press a key to continue\n");// row 0, column 0

getch();

printw("Press a key to quit\n");
//mvprintw(1, 0, "Press a key to quit\n");// row 1, column 0

getch();

endwin();
return 0;
}

مثلاً اینکه اول از همه باید تابع initscr رو احضار کنید. برای چاپ کردن متن هم از printw یا mvprintw استفاده کنید. نمی‌دونم میشه با iostream ترکیبش کرد یا نه. ولی با cout که ظاهرا کار نمی‌کنه(یعنی هیچی چاپ نمیشه) نمی‌دونم میشه کاری کرد که cout مثل همین printw رفتار کنه یا نه.
من زیاد به ncurses وارد نیستم. فقط قبلاً یکی دو تا برنامهٔ نسبتا ساده باهاش نوشم. یه چیزی شبیه دستور less رو با پایتون نوشتم اگه خواستید شاید بتونم به C یا ++C تبدیل کنم.
راستی یادمه با متن فارسی هم مشکل داشت. هم توی C و هم توی پایتون. در واقع با یونیکد مشکل داشت و کاراکترهای فارسی رو درست چاپ نمی‌کرد(بر خلاف stdio و iostream که با یونیکد مشکلی ندارن).


منوالش رو هم بخونید بد نیست:
man ncursesالبته باید پکیج manpages-dev نصب باشه.




من با eclipse کار نکردم، گزینه‌ای برای اضافه کردن library ها نداره؟(مثل همین مورد) احتمالا باید داشته باشه! اگه پیدا نکردید، باید با خط فرمان کامپایل کنید.

آفلاین sun

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
  • لینوکس یعنی دنیای ندانسته ها
پاسخ به: مشکل با ncurses
« پاسخ #8 : 21 تیر 1388، 08:52 ب‌ظ »
کارم راه افتاد از این که جواب سوالاتم را دادی خیلی ممنونم
به امید روزی که آزادی را درک کنیم؟

آفلاین Farshid

  • High Sr. Member
  • *
  • ارسال: 613
  • جنسیت : پسر
پاسخ به: مشکل با ncurses
« پاسخ #9 : 21 تیر 1388، 09:23 ب‌ظ »
کارم راه افتاد از این که جواب سوالاتم را دادی خیلی ممنونم
درود

دوست عزیز ی توضیحی می‌دادی که چطور کارت درست شد و ی [حل شد] هم به اول پست‌ت اضافه می‌کردی!!!

ممنونم ;)
معنای واقعی اوبونتو این است که "آدمی به کمک انسانهای دیگر به گوهر آدمیت میرسد"

آفلاین sun

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
  • لینوکس یعنی دنیای ندانسته ها
پاسخ به: مشکل با ncurses
« پاسخ #10 : 22 تیر 1388، 05:56 ق‌ظ »
کارم راه افتاد از این که جواب سوالاتم را دادی خیلی ممنونم
درود

دوست عزیز ی توضیحی می‌دادی که چطور کارت درست شد و ی [حل شد] هم به اول پست‌ت اضافه می‌کردی!!!

ممنونم ;)
خوب فکر نکنم نکته مبهمی توی توضیحات بالا باشه برای همین توضیح ندادم. من برنامه مورد نظرم را با خط فرمان کامپایل کردم
به امید روزی که آزادی را درک کنیم؟