Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] perchè stampa due volte?

    printf("inserire numero totale degli iscritti\n");
    scanf("%d", &N);
    printf("numero iscritti %d\n", N);
    for(i=0; i<N; i++)
    {
    printf("Inserire sesso(M/F)\n");
    scanf("%c", &sesso);
    }

    perchè l'output è questo?
    -------------------------------------
    inserire numero totale degli iscritti
    4
    numero iscritti 4
    Inserire sesso(M/F)
    Inserire sesso(M/F)
    M
    Inserire sesso(M/F)
    Inserire sesso(M/F)
    F
    -----------------------------------------
    perchè si ripete due volte Inserire sesso(M/F)????????

  2. #2
    La scanf lascia nel buffer di input il carattere di newline, che viene letto per primo al posto del carattere effettivamente inserito. Per risolvere, svuota il buffer di input prima della seconda scanf, inserendo prima di essa:
    codice:
    while(getchar()!='\n')
        ;
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    ok, grazie.
    C'è un altro metodo da usare senza la while???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.