Ошибка графической библиотеки C

#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 и устарели.