Ciao a tutti ! ho un problema nel capire il senso della lettura di una coda ! mi spiego meglio, intanto
ecco la traccia :
Si scriva un programma che simuli l’accodamento di clienti di un call center di una compagnia telefonica. I clienti possono scegliere tra 3 tipi di richieste:
1. Informazioni sui piani tariffari
2. Informazioni sul traffico telefonico
3. Informazioni sulle promozioni
Ogni cliente rimane in attesa in una opportuna coda (tariffe, traffico, promozioni) tutte con la stessa priorità. Ogni coda può accodare al massimo 20 clienti e viene servita da un solo operatore.
I dati relativi ad ogni cliente sono i seguenti:
• Numero telefonico (Una stringa di 10 caratteri).
• Cognome Cliente (Una stringa di 20 caratteri).
• Nome Cliente (Una stringa di 20 caratteri).
La struttura coda è definita cosi :
dove Tinfo ècodice:typedef struct SQueue{ TInfo info[SIZE]; int head; int tail; }TQueue;
ora la lettura me la svolge in questo modo :codice:struct SInfo { char telefono [MAXTEL]; //Codice Fiscale del Paziente char cognome[MAXCHAR]; //Cognome del Paziente char nome[MAXCHAR]; //Nome del Paziente };
quello che non capisco sono le condizioni del while ! qualcuno potrebbe chiarirmi il ragionamento ? grazie in anticipo per l'aiutocodice:TInfo read_info() { TInfo info; do { printf ("Numero di telefono del cliente "); scanf ("%s", info.telefono); } while (strlen(info.telefono)!=MAXTEL-1); do { printf ("Inserisci il cognome del cliente "); scanf ("%s", info.cognome); } while (strlen(info.cognome)>MAXCHAR-1); do { printf ("Inserisci il nome del cliente "); scanf ("%s", info.nome); } while (strlen(info.nome)>MAXCHAR-1); return info; }![]()

Rispondi quotando
a parte la funzione "pulisci buffer()" credo di aver capito la sostanza, ma è che mi serve qualcosina da fare "in fretta" perchè ho un esame di algoritmi e non mi interessa andare troppo nello specifico visto che non sono un informatico
avevo pensato di fare un getc fin quando non fosse pieno il vettore e poi svuotare il flusso stdin se si eccede. 