Problema con fflush

di il
4 risposte

Problema con fflush

Salve, sto avendo un problema: non riesco a capire dove mettere l'fflush nel codice che vi ho postato sotto. Il problema si pone al primo gets nella funzione "informazioni_persona", quindi ho pensato di inserire fflush subito dopo lo scanf, però non ho risolto nulla( per la precisione, ho scritto fflush(stdin)), allora l'ho inserita dentro la funzione "informazioni_persona", ma nulla. Come dovrei fare?
	int elementi =1;
	int dim = 0, i = 0;
	int scelta = -1;
	persona p;
	list lista_persone;
	inizializza_lista(&lista_persone);
	while (scelta = menu()!=0) {
		switch (scelta) {
		case 1: printf("Quanti elementi vuoi inserire?\n");
			scanf("%d", &dim);
			for (i = 0; i < dim; i++) {
				p = informazioni_persona();
				inserimento_ordinato(&lista_persone, p);



persona informazioni_persona() {
	persona temp;
	printf("inserisci nome\n");
	gets_s(temp.nome,10);
	printf("inserisci cognome\n");
	gets_s(temp.cognome,20);
	printf("inserisci eta'\n");
	scanf("%d", &temp.eta);
	
	return temp;

4 Risposte

  • Re: Problema con fflush

    E la funzione menu dov'è?
  • Re: Problema con fflush

    Devi descrivere il problema che vuoi risolvere. Comunque sarebbe meglio che fflush(stdin) non sia parte della soluzione in ogni caso, perché ha comportamento indefinito secondo lo standard
  • Re: Problema con fflush

    Weierstrass ha scritto:


    Devi descrivere il problema che vuoi risolvere. Comunque sarebbe meglio che fflush(stdin) non sia parte della soluzione in ogni caso, perché ha comportamento indefinito secondo lo standard
    Allora, non dovendo utilizzare fflush, come faccio a svuotare il buffer? O comunque, come faccio a non far saltare il primo gets dopo lo scanf nel case 1 ?
  • Re: Problema con fflush

    Non hai neanche letto quello che ti ho scritto?

    Il fflush funziona adesso solo con compilatori MS.

    Usa una while per svuotare il buffer esistono tanti thread in questo forum fai una ricerca
Devi accedere o registrarti per scrivere nel forum
4 risposte