#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.
conio.h فقط توی ویندوز هست. اون هم بیشتر برای ویندوزهای قدیمی.برای c++ هم اینجوریه؟ یادمه توی گنو مشکلی نداشت!
میتونید به جاش از ncurses استفاده کنید. اول بسته libncurses-dev رو نصب کنید.
بعد به جای conio.h از curse.h استفاده کنید.
اکثر توابعی که توی conio.h هست، همراه ncurses هم پیدا میشه.
معمولا توی دبیان بستههایی که اسم اونها به dev- ختم میشه، شامل فایلهای header و اینجور چیزها هستند که برای توسعه نرمافزار استفاده میشه.
https://tldp.org/HOWTO/NCURSES-Programming-HOWTO
کتابخونهای به اسم conio.h وجود نداره. تو کدوم استاندارد چنین چیزی دیدی؟یعنی حتی توی c++ هم استاندارد نیست؟ ؟؟؟
کتابخونهای به اسم conio.h وجود نداره. تو کدوم استاندارد چنین چیزی دیدی؟
برای c++ هم اینجوریه؟ یادمه توی گنو مشکلی نداشت!نمیدونم.
درود خیلی ممنونخوشون. مگه این رو نخوندید:
معادل اینها در curser.h چی هست ؟؟
()gotoxy
()getch
()clrscr
()getche
()getchar
اکثر توابعی که توی conio.h هست، همراه ncurses هم پیدا میشه.
لازم نیست فایل نصبی رو در جایی قرار بدم؟ یا لینک کنم؟کدوم فایل نصبی؟ شما بسته libncurses-dev رو نصب میکنید. همراه اون، یه بسته مناسب که شامل فایلهای header هست نصب میشه.
()putch
()putchar
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();
| ^~~~~
#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
تو اینرنت بگردی هستاستاندارد مثلاً C11 یا C17 منظورم بود که فهمیدم اصلاً یه سراینده که خود ویندوز بهصورت غیراستاندارد اضافهاش کرده.
و یکی از تمرینات برنامه نویسی که داشتم میکردم از این کتابخونه استفاده میکرد
#include <stdlib.h>
int main() {
system("clear");
return 0;
}
<stdio.h>
با "stdio.h"
میشه دوستان بگن که
فایلهای a.
c. و ... چی هستند؟!
h. که میشه فایل هدر اما بقیش رو مطمعن نیستم :'(
خب a. چی هست؟!
پیشنهاد میکنم برای شروع ابتدا یک کتاب خوب آموزش C بخونید.
#include <stdio.h>
#include <curses.h>
int main()
{
int x, z, q, y;
initscr ();
refresh();
endwin();
printf("\n give me 2 number");
scanf("%d%d",&x, &y);
z = x * y;
q = (x + y) * 2;
printf("\n area=%d, wide=%d", z,q);
initscr();
getch();
endwin();
return 0;
}
درود!!!
بالاخره برنامه رو ساختم این هم کد های برنامه ( اوپن سورسه :P )کد: [انتخاب]
#include <stdio.h>
#include <curses.h>
int main()
{
int x, z, q, y;
initscr ();
refresh();
endwin();
printf("\n give me 2 number");
scanf("%d%d",&x, &y);
z = x * y;
q = (x + y) * 2;
printf("\n area=%d, wide=%d", z,q);
initscr();
getch();
endwin();
return 0;
}
احساس خوبی دارم و باید هم داشته باشم.
بعد از این همه سر و کله زدن با یه عالمه مشکل بالاخره ساختمش!!
خب دوستان آیا کد بنده نیاز به بهینه سازی نداره؟؟؟ برنامه درست کار میکرد ولی احساس میکنم میتونه بهترم بشه
نظرتون چیه؟
#include <stdio.h>
#include <ncurses.h>
int main()
{
int x, y, area, perimeter;
initscr(); // Initialize the ncurses library
refresh();
endwin();
printf("\nGive me 2 numbers: "); // Fixed the message to make it grammatically correct
scanf("%d%d", &x, &y);
area = x * y; // Changed variable name from 'z' to 'area' for clarity
perimeter = (x + y) * 2; // Changed variable name from 'q' to 'perimeter' for clarity
printf("\nArea = %d, Perimeter = %d\n", area, perimeter);
initscr();
getch();
endwin();
return 0;
}
man scanf
#include <stdio.h>
#include <ncurses.h>
int main()
{
int x, y, area, perimeter;
initscr(); // Initialize the ncurses library
refresh();
endwin();
printf("\nGive me 2 numbers: "); // Fixed the message to make it grammatically correct
scanf("%d%d", &x, &y);
area = x * y; // Changed variable name from 'z' to 'area' for clarity
perimeter = (x + y) * 2; // Changed variable name from 'q' to 'perimeter' for clarity
printf("\nArea = %d, Perimeter = %d\n", area, perimeter);
initscr();
getch();
endwin();
return 0;
روش کامپایل برنامه را ارسال کنید.
gcc x.c -lcurses
بهتره برای خواندن ورودی از getline به جای scanf استفاده کنید.
man getline
NAME
getline, getdelim - delimited string input
LIBRARY
Standard C library (libc, -lc)