Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    107

    Questione di switch

    perchè quando giro questo programma

    codice:
    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
         char x;
         
         
         printf("dire quale citta' fra Napoli,Avellino,Caserta,Benevento \n"
                "\ne' piu' a nord (inserire iniziale): ");
    
         do
         
     {
    scanf("%c",&x);
    switch(x)
    {
      case 'N' : printf("\n Napoli e' la piu' a sud delle 4...\n"); break;
      case 'C' : printf("\n Caserta e' piu' a sud di benevento \n"); break;
      case 'A' : printf("\n Avellino e' piu' a nord solo di napoli \n"); break;
      case 'B' : printf("\n Benevento e' la risposta esatta! \n \n"); break;
      default: printf("\n Prova ancora...:"); break;
    }
     }
      while(x!='B');
    
    system("pause");
    return 0;
    }
    in caso di default mi stampa "prova ancora" due volte???
    sono sicuro si tratti di un errore banale...

    grazie in anticipo per la risposta

  2. #2
    Scrive Prova ancora concatenati, oppure prima lo scrive una volta poi premi un tasto e lo riscrive ?
    lolide
    Java Programmer

    Informati

  3. #3
    Se inserisci un carattere e premi Invio il primo carattere viene recuperato dalla scanf, mentre il secondo (l'Invio) rimane nel buffer di stdin, per cui viene letto dalla scanf al giro successivo senza attendere ulteriore input dall'utente. Per rimediare, inserisci dopo la scanf:
    codice:
        while(getchar()!='\n')
            ;
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    107
    grazie, e dire che ho anche letto di recente di un problema simile riguardate il buffer, e non ci avevo proprio pensato

    sto imparando molte cose da quando mi sono registrato

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.