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

Rispondi quotando