Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178

    [C] Problemi con scanf

    Buongiorno, scusate la domanda banale (sono veramente alle prime armi).
    Il ciclo seguente ha un comportamento strano, fa sempre un giro a vuoto..
    Ho già provao ad intercettare il \n ma non riesco a capire.
    codice:
        printf("\nSelezionare la direzione: ");
        while(scanf("%c",&scelta) == 1 && ripeti == 0) {
            printf("Scelta = %c\n",scelta);
            if (scelta == 'p') {
               printf("Precedente\n");
            }
            else if (scelta == 's') {
               printf("Successivo\n");
            }
            else if(scelta == 'f') {
               printf("Fine\n");
               ripeti = 1;
            }
            else {
               printf("Scelta non valida\n");
               printf("\nSelezionare la direzione: ");
            }
       }
    Grazie mille a tutti
    Buji

  2. #2
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    risposta

    ehi ciao...guarda sono anche io alle prime armi col C, ho provato a risolvere il tuo problema...sperando d essereci riuscito, comunque secondo me invece di usare un while potresti farlo con un do...while, dovrebbe andare, poi per quanto riguarda il \n basta mettere un altro %c nella scanf...che si maggia il carattere "\n"...comunque se mi dici dome si fa e mettere il codice nei messaggi...così magari te lo scrivo...
    grazie
    MrX87

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: risposta

    Originariamente inviato da MrX87
    comunque se mi dici dome si fa e mettere il codice nei messaggi...così magari te lo scrivo...
    grazie
    MrX87
    Quando scrivi il messaggio, premi il pulsante (#) in alto che ti fa apparire i due tag [*CODE] e [*/CODE] (senza l'asterisco rosso), oppure li scrivi direttamente tu (ovviamente senza l'asterisco).

    All'interno di questi tag posti il codice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    Guarda...non c riesco...nn so x quale motivo assurdo...facciamo che te lo copio direttamente così...grazie lo stesso
    codice:
    #include <stdio.h>
    int main ()
    {
        int ripeti=0;
        char scelta;
    
    printf("\nSelezionare la direzione: ");
        do {
            scanf("%c%c",&scelta);
            printf("Scelta = %c\n",scelta);
            if (scelta == 'p') {
               printf("Precedente\n");
            }
            else if (scelta == 's') {
               printf("Successivo\n");
            }
            else if(scelta == 'f') {
               printf("Fine\n");
               ripeti = 1;
            }
            else {
               printf("Scelta non valida\n");
               printf("\nSelezionare la direzione: ");
            }
       } while( ripeti == 0);
    }

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Non mi pare una cosa difficile: si apre una parentesi quadra, si scrive CODE, si chiude la quadra.
    Si incolla il codice da inviare e alla fine si riapre una parentesi quadra, si scrive /CODE e si chiude la quadra...

    [ CODE ]
    codice da visualizzare nel messaggio
    [ /CODE ]


    Te lo sistemo io...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    grazie

    comunque ci sono riuscito...siccome avevo fatto anteprima e non lo aveva visualizzato pensavo fosse sbagliato...invece era giusto...grazie lo stesso
    e poi...cosa devi sistemare??
    MrX87

  7. #7
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178

    Re: risposta

    Originariamente inviato da MrX87
    ehi ciao...guarda sono anche io alle prime armi col C, ho provato a risolvere il tuo problema...sperando d essereci riuscito, comunque secondo me invece di usare un while potresti farlo con un do...while, dovrebbe andare, poi per quanto riguarda il \n basta mettere un altro %c nella scanf...che si maggia il carattere "\n"...comunque se mi dici dome si fa e mettere il codice nei messaggi...così magari te lo scrivo...
    grazie
    MrX87
    Grazie mille, in realtà oltre che una questione di ciclo corretto, è necessario intercettare anche la sequenza di escape.
    Grazie ancora
    Buji

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: grazie

    Originariamente inviato da MrX87
    e poi...cosa devi sistemare??
    Ho già sistemato io il codice del tuo ultimo messaggio (non era inserito nei tag CODE).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.