Ciao raga, ho fatto un semplice programma che dovrebbe scrivere su un file, e praticamente lo fa'.
chiedo di inserire il nome, cognome,l'eta', la sezione della classe, e l'anno della classe.
Mi mi stampa i campi relativi a uno sola persona tutti attaccati:
ad esempio:
CarloRusso17A4, anche se ho dichiarato il tracciato record.
codice:# include <stdio.h> # include <stdlib.h> # include <string.h> using namespace std; typedef char Eta[5]; // qui dichiaro il tracciato record typedef char Sezione[4]; // qui dichiaro il tracciato record typedef char Anno[4]; // typedef char Nome[20]; // struct alunno { Nome nome; Nome cognome; Eta eta; Sezione sezione; Anno anno; }; struct alunno lettura_stdin(); void scrittura_file(struct alunno a, FILE* w); int main(){ int ris,n; struct alunno a[100]; FILE *w, *r; w = fopen("test_2.txt","w"); ris=0; while (ris!=3) { printf("1) Inserisci l'alunno\n"); printf("2) Immetti a video la lista di alunni\n"); printf("3) Esci\n"); scanf("%d",&ris); if (ris==1) { a[0]=lettura_stdin(); scrittura_file(a[0],w); } } printf ("sei uscito dal programma\n"); fclose(w); system("pause"); } struct alunno lettura_stdin(){ struct alunno a; printf("inserisci il nome dell'alunno\n"); scanf("%s",&a.nome); printf("inserisci il cognome dell'alunno\n"); scanf("%s",&a.cognome); printf("inserisci l'eta dell'alunno\n"); scanf("%s",&a.eta); printf("inserisci la sezione dell'alunno\n"); scanf("%s",&a.sezione); printf("inserisci l'anno dell'alunno\n"); scanf("%s",&a.anno); return a; } void scrittura_file( struct alunno a, FILE* w){ fprintf(w, "%s",a.nome); fprintf(w, "%s",a.cognome); fprintf(w, "%s",a.eta); fprintf(w, "%s",a.sezione); fprintf(w, "%s\n",a.anno); fflush(w); }

Rispondi quotando