PDA

View Full Version : Matrice di led su c++


Kergan
22-04-2006, 18:23
Ciao a tutti ho un problemino con i file...
Dovrei creare un programma ke, preso in input un carattere lo disegni a video su una matrice 7x7....
Posto qui di seguito i due file cpp uno è la creazione del file l'altro il programma ke dovrebbe disegnare...

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

typedef struct lettera
{
char carat;
char mat[6][6];
};
lettera dato;

int main()
{
int i=0;
int j=0;
FILE *f;
cout<<"Inserisci carattere";
cin>>dato.carat;
f=fopen("matrice","w");
for (i=0;i<7;i++)
{
for (j=0;j<7;j++)
{
cout<<"Inserisci bit "<<i<<","<<j<<" :";
cin>>dato.mat[i][j];
}
}
fwrite(&dato,sizeof(lettera),1,f);
fclose(f);
}


_______________________________________________________________


#include <conio.h>
#include <stdio.h>
#include <process.h>
#include <iostream.h>
char buffer [80*25*2];
typedef struct lettera
{
char carat;
char mat[6][6];
};
lettera dato;
FILE *f;

int main()
{
int x,y=0;
char led;
char lett;
textbackground(7);
textcolor(0);
clrscr();
cout<<"Inserire la lettera da visualizzare sulla matrice: ";
cin>>lett;
f = fopen("matrice","r");
while(!feof(f))
{
fread(&dato,sizeof(lettera),1,f);
if (dato.carat==lett)
{
gettext(30,8,45,16,buffer);
window(30,8,45,16);
textcolor(4);
textbackground(0);
clrscr();
gotoxy(31,9);
for (x=0;x<7;x++)
{
for(y=0;y<7;y++)
{
led=dato.mat[x][y];
if (led==0)
putch(' ');
else
putch('Û');
}
}
cout<<"Lettera non presente";
}
}
fflush(stdin);
getchar();
fclose(f);
}


il problema sta nel fatto ke a video mi disegna sempre la solita cosa....
help me!!:D

Kergan
22-04-2006, 18:31
per esempio voglio disegnare uno 0 sulla matrice

0111110
0100010
0100010
0100010
0100010
0100010
0111110

andbin
22-04-2006, 19:38
Ciao a tutti ho un problemino con i file...
Dovrei creare un programma ke, preso in input un carattere lo disegni a video su una matrice 7x7....Ciao, innanzitutto, per cortesia, posta il codice sorgente, correttamente indentato, usando il tag CODE. ;) È solo per una questione di leggibilità.

Veniamo al codice. Ci sono diverse cose che non vanno:

1) Se la tua matrice è di 7x7, nella struttura devi dichiarare char mat[7][7]; e non 6.

2) Metti almeno un return 0; alla fine del main.

3) Sei sicuro che il primo (e anche il secondo) sorgente compila??? Il modo giusto di dichiarare una struttura usando anche il typedef è:
typedef struct
{
char carat;
char mat[7][7];
} lettera;

lettera dato;

4) Nel secondo sorgente vedo che fai un loop di lettura per cercare il carattere voluto. Quindi nel file ci possono essere più definizioni di caratteri. Nel primo sorgente devi usare "a" invece di "w" nella fopen per "appendere" dei dati in fondo al file.

Kergan
22-04-2006, 19:48
ok ho sistemato il codice ma il problema rimane.....disegna sempre metà griglia

scusa per l'indentatura :D