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);
}