Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    25

    [c]problema ciclo while

    Buonasera a tutti,
    ho un problema con il ciclo while (sono alle primissime armi).
    Devo realizzare un programma che legga una serie di caratteri (ognuno deve essere digitato e seguito dal tasto invio) e che al termine della lettura (si termina quando viene inserito il carattere#) conti il numero di caratteri 'a' digitati dall'utente.
    Vorrei sapere perchè se scrivo così:
    #include <stdio.h>
    main()
    {
    char car;
    int somma;
    somma=0;
    while(car!='#')
    {
    printf("inserisci un carattere e premi invio");
    scanf("%c",&car);
    if(car=='a')
    somma=somma+1;
    else somma=somma;
    }
    printf("Il carattere 'a' e' stato digitato %d volte",somma);
    getch();
    }

    succede che scrivo il carattere, e quando premo invio poi mi compare due volte la scritta:
    "inserisci un carattere e premi invio".
    Se a questo punto digito nuovamente un carattere e premo invio, mi compare tre volte la scritta suddetta, e via dicendo...
    Grazie mille a tutti.
    Davide.

  2. #2
    usa il tag [code] per il codice, assicurandoti di averlo indentato bene, come da regolamento

    In ogni caso, l'else del while è useless, nel senso che è un istruzione inutile e dovresti cancellarla

    l'errore che riscontri è dovuto al fatto che la scanf %c non pulisce il buffer della tastiera, si limita a leggere un carattere, ma in stdin resta ancora il "\n" che rappresenta la pressione del tasto invio

    è sufficiente che subito dopo la scanf metti una getchar(); e il problema dovrebbe essere risolto

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 © 2024 vBulletin Solutions, Inc. All rights reserved.