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