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

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

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


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

نویسنده موضوع: نبود کتابخانه conio.h در زبان سی  (دفعات بازدید: 2554 بار)

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

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
نبود کتابخانه conio.h در زبان سی
« : 22 امرداد 1402، 10:15 ب‌ظ »
درود


داشتم برا خودم کد میزدم ( اوبنتو ۲۲.۰۴ ) و خواستم از کتابخانه  conio.h  استفاده کنم که بتونم از دستور های  clrscr() , getch , , ...

استفاده کنم


اما وقتی خواست برنامه رو کامپایل کنم  ( gcc )  ارور میداد!!



متن برنامه من :

#include <stdio.h>
#include <conio.h>
int main()
{
         
        int x, y, z,q;
        clrscr();

        printf("\n ------------------");
        scanf("%d%d", &x, &y);
        z = x * y;
        q = (x + y) * 2;
        printf("\n z = %d ,q = %d", z, q);
        getch();
       
        return 0;
}




کلا میخواستم محیط و مساحت یک مستطیل رو حساب کنم.


اروری که به من داده میشه :



n.c:2:10: fatal error: conio.h: No such file or directory
    2 | #include <conio.h>
      |          ^~~~~~~~~
compilation terminated.





من چیکار کنم؟ چرا ارور میده درصورتی که وقتی سرچ هم میکنم همچین برنامه ایی تو سطح اینترنت هست.
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #1 : 22 امرداد 1402، 10:26 ب‌ظ »
conio.h فقط توی ویندوز هست. اون هم بیشتر برای ویندوز‌های قدیمی.
می‌تونید به جاش از ncurses استفاده کنید. اول بسته libncurses-dev رو نصب کنید.
بعد به جای conio.h از curse.h استفاده کنید.
اکثر توابعی که توی conio.h هست، همراه ncurses هم پیدا میشه.

معمولا توی دبیان بسته‌هایی که اسم اونها به dev- ختم میشه، شامل فایل‌های header و اینجور چیز‌ها هستند که برای توسعه نرم‌افزار استفاده میشه.
میدونید که زکات علم نشر آن است

آفلاین aFard

  • High Sr. Member
  • *
  • ارسال: 638
  • جنسیت : پسر
  • از دوستاران لینوکس
    • ویرگول من
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #2 : 22 امرداد 1402، 10:47 ب‌ظ »
conio.h فقط توی ویندوز هست. اون هم بیشتر برای ویندوز‌های قدیمی.
می‌تونید به جاش از ncurses استفاده کنید. اول بسته libncurses-dev رو نصب کنید.
بعد به جای conio.h از curse.h استفاده کنید.
اکثر توابعی که توی conio.h هست، همراه ncurses هم پیدا میشه.

معمولا توی دبیان بسته‌هایی که اسم اونها به dev- ختم میشه، شامل فایل‌های header و اینجور چیز‌ها هستند که برای توسعه نرم‌افزار استفاده میشه.
برای c++ هم اینجوریه؟ یادمه توی گنو مشکلی نداشت!
Its The legendery alireza138812

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #3 : 22 امرداد 1402، 11:25 ب‌ظ »
درود خیلی ممنون

معادل اینها در curser.h  چی هست ؟؟

()gotoxy
()getch
()clrscr
()getche
()getchar
لازم نیست فایل نصبی رو در جایی قرار بدم؟ یا لینک کنم؟
()putch
()putchar
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #4 : 23 امرداد 1402، 04:56 ق‌ظ »
https://tldp.org/HOWTO/NCURSES-Programming-HOWTO

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #5 : 23 امرداد 1402، 09:43 ق‌ظ »
کتابخونه‌ای به اسم conio.h وجود نداره. تو کدوم استاندارد چنین چیزی دیدی؟
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین aFard

  • High Sr. Member
  • *
  • ارسال: 638
  • جنسیت : پسر
  • از دوستاران لینوکس
    • ویرگول من
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #6 : 23 امرداد 1402، 11:32 ق‌ظ »
کتابخونه‌ای به اسم conio.h وجود نداره. تو کدوم استاندارد چنین چیزی دیدی؟
یعنی حتی توی c++ هم استاندارد نیست؟ ؟؟؟
Its The legendery alireza138812

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #7 : 23 امرداد 1402، 11:53 ق‌ظ »
بله. یه تحقیقی کردم؛ گویا این کتابخونه برای ویندوزه و می‌شه برای واین با libwine-dev نصبش کرد.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #8 : 23 امرداد 1402، 12:35 ب‌ظ »
کتابخونه‌ای به اسم conio.h وجود نداره. تو کدوم استاندارد چنین چیزی دیدی؟

تو اینرنت بگردی هست


و یکی از تمرینات برنامه نویسی که داشتم میکردم از این کتابخونه استفاده میکرد
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #9 : 23 امرداد 1402، 02:12 ب‌ظ »
برای c++ هم اینجوریه؟ یادمه توی گنو مشکلی نداشت!
نمی‌دونم.


درود خیلی ممنون

معادل اینها در curser.h  چی هست ؟؟

()gotoxy
()getch
()clrscr
()getche
()getchar
خوشون. مگه این رو نخوندید:
اکثر توابعی که توی conio.h هست، همراه ncurses هم پیدا میشه.

نقل‌قول
لازم نیست فایل نصبی رو در جایی قرار بدم؟ یا لینک کنم؟
()putch
()putchar
کدوم فایل نصبی؟ شما بسته libncurses-dev رو نصب می‌کنید. همراه اون، یه بسته مناسب که شامل فایل‌های header هست نصب میشه.
اون فایل‌ها داخل /usr/include/ قرار می‌گیرن. این یه مسیر پیش‌فرض هست که کامپایلر‌ها دنبال فایل‌های header می‌گردند.
میدونید که زکات علم نشر آن است

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #10 : 23 امرداد 1402، 02:15 ب‌ظ »
درود


رفتم فایل نصبی conio.h  رو نصب کردم
https://github.com/zoelabbb/conio.h



و مو به مو انجام دادم

اما با این ارور ها مواجه شدم


In file included from n.c:2:
/usr/include/conio.h:144:1: error: unknown type name ‘class’
  144 | class __CONIO_H{
      | ^~~~~
/usr/include/conio.h:144:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
  144 | class __CONIO_H{
      |                ^
n.c: In function ‘main’:
n.c:7:9: error: request for member ‘clrscr’ in something not a structure or union
    7 |         clrscr();
      |         ^~~~~~
n.c:14:9: error: request for member ‘getch’ in something not a structure or union
   14 |         getch();
      |         ^~~~~




فکر کنم باید برم سراغ بسته پیشنهادی شما آقای دراگون :'(


ادیت:


libncurses-dev هم نصب کردم اما اتفاق خاصی نمیفته البته کد های برنامه رو تغیر دادم به این :

#include <stdio.h>
#include <curses.h>
int main()
{
int x, y, z, q;
clrscr();

printf ("\n give me 2 integers");

scanf("%d%d", &x, &y);

z = x * y;
q = (x + y) * 2;
printf("area=%d, width=%d", z, q);
getch();

return 0;
}





و با این ارور مواجه میشم:
n.c: In function ‘main’:
n.c:6:9: warning: implicit declaration of function ‘clrscr’ [-Wimplicit-function-declaration]
    6 |         clrscr();
      |         ^~~~~~
/usr/bin/ld: /tmp/ccA2FhHD.o: warning: relocation against `stdscr' in read-only section `.text'
/usr/bin/ld: /tmp/ccA2FhHD.o: in function `main':
n.c:(.text+0x21): undefined reference to `clrscr'
/usr/bin/ld: n.c:(.text+0x90): undefined reference to `stdscr'
/usr/bin/ld: n.c:(.text+0x98): undefined reference to `wgetch'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status





« آخرین ویرایش: 23 امرداد 1402، 02:35 ب‌ظ توسط learner:~$ »
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #11 : 23 امرداد 1402، 08:28 ب‌ظ »
تو اینرنت بگردی هست


و یکی از تمرینات برنامه نویسی که داشتم میکردم از این کتابخونه استفاده میکرد
استاندارد مثلاً C11 یا C17 منظورم بود که فهمیدم اصلاً یه سراینده که خود ویندوز به‌صورت غیراستاندارد اضافه‌اش کرده.

برای پاک کردن صفحه می‌تونی از stdlib استفاده کنی:
#include <stdlib.h>

int main() {
    system("clear");
    return 0;
}
« آخرین ویرایش: 23 امرداد 1402، 08:30 ب‌ظ توسط دانیال بهزادی »
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #12 : 23 امرداد 1402، 10:41 ب‌ظ »
فعلا که کتابخونه curses.h مونده رو ددستم و هرچقدر میخونم تموم نمیشه!! ](*,)



نباید این کتابخونه ایی که میگی رو لینک کنم به کامپایلر۰ (  gcc main.c -lnstdlib.h ؟)


راستی وقتی داشتم سرچ میکردم به چند تا چیز برخوردم  اینکه :



<stdio.h>با

"stdio.h"
فرق داره اما کتابخونه ایی که استفاده میکرد فرق داشت( ماله یاضی بود)  میشه بپرسم فرقشون چیه؟


مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین learner:~$

  • Hero Member
  • *
  • ارسال: 816
  • جنسیت : پسر
  • روزی روز گاری در گنو/لینوکس
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #13 : 23 امرداد 1402، 11:17 ب‌ظ »
میشه دوستان بگن که


فایلهای  a.

c.  و ... چی هستند؟!


h.  که میشه فایل هدر اما بقیش رو مطمعن نیستم :'(
مثل سمی کالونم( ; ).
خواستار پایان.
محکوم به کامپایل.

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
پاسخ : نبود کتابخانه conio.h در زبان سی
« پاسخ #14 : 24 امرداد 1402، 12:46 ق‌ظ »
میشه دوستان بگن که


فایلهای  a.

c.  و ... چی هستند؟!


h.  که میشه فایل هدر اما بقیش رو مطمعن نیستم :'(

".a" معمولا کتابخانه است که به صورت استاتیک کامپایل شده است.
".c" برانامه سی است :).