Il programma deve leggere una stringa di carattere compresi gli spazi e tre interi, il problema è che la funzione readNominativo() funziona solo al primo ciclo:
codice:
#include "fun.h"
int main()
{
studente anagrafe[DIM];
writeVet(anagrafe);
}
codice:
#include "fun.h"
void writeVet(studente *s)
{
void readNominativo(char *); //questa funzione sarà utilizzata solamente dalla funzione writeVet
void readData(data *);
puts("Immettere i dati dello studente");
int i;
for(i=0;i<DIM;i++)
{
//printf("Nome e cognome:");
readNominativo(s[i].nomecognome);
readData(&s[i].date);
}
}
void readNominativo(char *n)
{
puts("Inserire nome e cognome");
int i=0;
do{
n[i]=getchar();
i++;
}while(i<LUNG-1 && n[i-1]!='\n');
n[i-1]='\0';
}
void readData(data *d)
{
puts("Inserire anno,mese e giorno");
scanf("%d%d%d",&d->anno,&d->mese,&d->giorno);
}
codice:
#include <stdio.h>
#include <string.h>
#define LUNG 24 //LUNGHEZZA NOME E COGNOME
#define DIM 5 //NUMERO STUDENTI
typedef struct {
int anno;
int mese;
int giorno;
}data;
typedef struct{
char nomecognome[LUNG];
data date;
char sesso; // m o f
}studente;
/*PROTOTIPI*/
void writeVet(studente *);