|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
file c dove sta l'errore?
ciao a tutti, non riesco a modificare l'ultimo elemento quando setto a 1 un flag x nn leggere + quella persona. Come faccio?
grazie mille //cancellazione logica #include <stdio.h> #include <conio.h> struct alunno { char cognome[10]; int matricola; int f; //flag }; void carica () { int n; alunno a; FILE *fp; printf ("\n\nNumero da caricare:\t"); scanf ("%d",&n); fp=fopen ("nome","wb"); for (int i=0;i<n;i++) { printf ("\n\n%d alunno:",i+1); printf ("\n\nInserisci Cognome:\t"); fflush (stdin); gets (a.cognome); printf ("\n\nInserisci codice:\t"); scanf ("%d",&a.matricola); a.f=0; fwrite (&a,sizeof (a),1,fp); } fclose (fp); } void cancella () { int b,i=-1,matricola; alunno a; FILE *fp; printf ("\n\nMatricola:\t"); scanf ("%d",&matricola); fp=fopen ("nome","r+b"); do { fread (&a,sizeof(a),1,fp); b=feof(fp); if (b==0) { i++; if (matricola==a.matricola) { a.f=1; fseek (fp,sizeof(a)*i,0); fwrite (&a,sizeof(a),1,fp); break; } } }while (!feof(fp)); fclose (fp); } void visualizza () { int b; printf ("\n\nVisualizza Alunni."); alunno a; FILE *fp; fp=fopen ("nome","rb"); while (!feof (fp)) { fread (&a,sizeof(a),1,fp); b=feof(fp); if (b==0) { if (a.f==0) { printf ("\n\nCognome:\t%s",a.cognome); printf ("\n\nMatricola:\t%d",a.matricola); } } } fclose (fp); } void main () { int scelta; for (;; ) { printf ("\n\n1-\tcaricare_file."); printf ("\n\n2-\tcancellare."); printf ("\n\n3-\tvisualizzare."); printf ("\n\n4-\tuscire"); printf ("\n\nScelta:\t"); scanf ("%d",&scelta); if (scelta==4) break; if (scelta==1) carica (); if (scelta==2) cancella (); if (scelta==3) visualizza (); } } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
nessuno sa dirmi come fare?
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma usi un debugger ? Che compilatore usi ?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
uso il compilatore del visual c.è un errore logico, la sintassi è corretta
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora metti un breakpoint nel punto che ti interessa (con F9)...
Poi premi F5 e il programma parte...si fermerà quando arriverai all'istruzione su cui hai messo il breakpoint... Durante il debug in basso a destra hai delle caselle in cui puoi mettere le variaibili che ti interessano per visualizzarne il valore... Puoi anche modificare il codice senza dover terminare il debug (quando il compilatore passerà sul codice modificato valuiterà qullo modificato)... Premendo F10 valuti l'intera istruzione su cui sei posizionato (la posizione nel codice la vedi con una freccia)...se premi F11 entri nelle varie, eventuali, funzioni chiamate da quella istruzione fino a tornare alla riga iniziale... Premendo F5 continui l'esecuzione fino al prossimo breakpoint (i breakpoint li puoi settare anche durante il debug)... Quindi con un mix di F5, F11, F10 puoi correggere quasiasi bug (non di sintassi) ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
grazie
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:11.