Problema con la libreria della grafica

So che non centra molto con le olimpiadi però dato che mi ci sto scervellando e non trovo comunque una soluzione, chiedo aiuto a qualcuno che sa utilizzare questa libreria:

#include <graphics.h> 
#include <iostream>
using namespace std;
int main()
{
   int gd = DETECT,gm;
 initgraph(&amp,gd,&amp,gm,"c:\\Dev-Cpp\\lib\\libbgi");   

 int x= 150,y=180,radius=50;

 setcolor(MAGENTA);
 outtextxy(x - 70, y - 170, "Benvenuti nel mio primo programma in Graphics");

 setcolor(LIGHTGREEN);
 circle(x, y, radius);
 floodfill(x,y,YELLOW);
 circle(x+200, y, radius);
 floodfill(x+200,y,YELLOW);

 setcolor(RED);
 rectangle(x+80, y + 50, x+120, y+150);
 floodfill(x+81,y+51,12);

 setcolor(BLUE);
 arc(x+100, y+70,20, 160,150);

 setcolor(DARKGRAY);
 circle(x+100, y+75, 200);
 
 getch();
 closegraph();

 return 0;
}

Ho questo problema sto cercando di lavorare con l libreria di grafica, ho gia inserito i file opportuni nelle cartelle però nonostante questo continua a dare un errore dicendomi che alla seconda riga dentro il main mi dice che “amp” non è dichiarato;
Se qualcuno può gentilmente aiutarmi gliene sarei infinitamente grato;
Grazie in anticipo!

in effetti passi l’indirizzo di amp a initgraph() ma mi sembra che amp non sia stata dichiarata.

Ho provato a toglierlo ma non cambia nulla mi continua a dare errore

Prova a partire da un esempio più semplice che compila correttamente e poi aggiungi man mano le istruzioni. Cercando su google “graphics.h” ho trovato questa guida che potrebbe esserti utile: https://developerinsider.co/graphics-graphics-h-c-programming/

Grazi ho provato a fare il primo esempio ma mi da “clrscr not declared”:

#include<graphics.h>
#include<stdio.h>
#include<conio.h>

int main() {
   int gdriver = DETECT, gmode;
   int x1 = 200, y1 = 200;
   int x2 = 300, y2 = 300;
   clrscr();
   
   initgraph(&gdriver, &gmode, "c:\\turboc3\\bgi");
   line(x1, y1, x2, y2);
   getch();
   closegraph();
}

Non riesco veramente a capire dove sia l’errore sto cercando su vari forum ma niente mi sembra di aver seguito tutte le istruzioni correttamente

Cercando “clrscr not declared” su Google ho trovato questo:

Da quel che dicono lì, pare che clrscr() non sia una funzione standard bensì una semplice estensione fornita solo dal compilatore (antico) della Borland all’interno di <conio.h> (anche questo non standard), e pare che nei compilatori moderni non sia presente.

Dicono anche che includendo <stdlib.h> si può usare system("cls") che pare faccia la stessa cosa di clrscr() :wink:

Sono disperato non funziona neanche questo… :sob:

Non compila? Che errore dà?

Hai impostato correttamente il linker?
Ho usato quella libreria in tempi remoti, e se non ricordo male devi installare un file libgraphics.a o qualcosa del genere che poi va linkato.
Se usi dev cpp devi creare un progetto e andare nelle impostazioni di compilazione e nel linker aggiungere diversi parametri del tipo “-l<nome libreria, cercalo su internet>”
Tra l’altro io non ho mai usato una funzione initgraphics, è sufficiente aprire il main e scrivere initwindow che crea la finestra grafica:
initwindow(int larghezza, int altezza, const char * titolo);

Inoltre la libreria in questione non è più mantenuta se non erro ed è solo per WS, ti consiglio di passare a librerie più avanzate e multipiattaforma come SDL2 che ti permette di importare immagini, suoni, e fare molte cose. La SDL2 supporta pure l’accelerazione hardware perché renderizza con OpenGL

1 Mi Piace

Finalmente ci sono riuscito ho dovuto usare codeblocks perchè con dev ci avevo perso le speranze

1 Mi Piace