#c #graphics
#c #bgi
Вопрос:
У меня есть следующий код :
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
void main()
{
int gd=DETECT,gm;
int dx,dy,p,end;
float x1,x2,y1,y2,x,y;
initgraph(amp;gd,amp;gm,"");
printf("nEnter the value of x1: ");
scanf("%f",amp;x1);
printf("nEnter the value of y1: ");
scanf("%f",amp;y1);
printf("nEnter the value of x2: ");
scanf("%f",amp;x2);
printf("nEnter the value of y2: ");
scanf("%f",amp;y2);
dx=abs(x1-x2);
dy=abs(y2-y1);
p=2*dy-dx;
if(x1>x2)
{
x=x2;
y=y2;
end=x1;
}
else
{
x=x1;
y=y1;
end=x2;
}
putpixel(x,y,10);
while(x<end)
{
x=x 1;
if(p<0)
{
p=p 2*dy;
}
else
{
y=y 1;
p=p 2*(dy-dx);
}
putpixel(x,y,10);
}
getch();
closegraph();
}
Код в основном предназначен для создания строки. Но когда я запускаю эту программу, я получаю сообщение об ошибке в своей консоли (я использую Ubuntu версии 10.04) как :
test.c:2: fatal error: conio.h: No such file or directory
compilation terminated.
test.c:2: fatal error: graphics.h: No such file or directory
compilation terminated.
Означает ли это, что я должен добавить некоторую библиотеку в путь C?
Заранее спасибо.
Ответ №1:
conio.h
и graphics.h
, я полагаю, это древние, нестандартные интерфейсы, которые пришли из среды Borland.
Комментарии:
1. В среде Ubuntu я не устанавливал C, но я могу запускать другие программы на C без каких-либо ошибок, но в этом случае я не могу :/
2. Вероятно, эта программа написана для среды MS-DOS и никогда не будет компилироваться в стандартном дистрибутиве Linux.
Ответ №2:
Эти два заголовка доступны только для Windows. Для getch()
вы можете эмулировать его (см. Здесь ) и для graphics.h
вы можете установить libgraph.
Ответ №3:
Для пользователей Ubuntu ошибка заключается в том, что у нас нет этой библиотеки. Поэтому мы включаем соответствующую библиотеку. Введите следующую команду в терминале:
sudo apt-get install libncurses5-dev libncursesw5-dev
Ответ №4:
изменение
dx=abs(x1-x2);
этим:
dx=abs(x2-x1);
Ответ №5:
попробуйте использовать OPENGL
и удалить строку, включающую conio.h
, graphics.h
, getch()
, closegraph()
. Они используются компилятором Turbo C DOS и устарели.