1. #1

    Registered
    28/07/05
    Posts
    6
    iTrader
    0
    Mentioned
    0 Post(s)

    [C] één karakter inlezen met getchar()

    Goedenavond,

    Ik zit met volgend probleem in dit klein fragmentje code.

    Code:
    char letter;
    int pogingen = 10;
    
    while ( pogingen > 0 ) {
    	printf ("\n\nDoe een poging: ");
    	letter = getchar();
    	pogingen--;
    }
    Wanneer ik dit draai krijg ik aanvankelijk de tekst "Doe een poging: " en vraagt de computer mij om een teken in te geven. Wanneer ik dat teken bevestig krijg ik bij alle volgende printf 'en die zin tweemaal. Ter illustratie:

    Doe een poging:
    Doe een poging:

    en wacht ie op mijn invoer. Ook is mijn variabele pogingen al met twee afgenomen. Ik begrijp niet goed waarom hij dat doet.

    Ik vermoed eigenlijk een probleem met die getchar(). Ik las dat je tekens liever inleest met getchar dan met een scanf() maar met scanf vertoond hij net hetzelfde probleem.
    no votes  

  2. #2
    Tyfius's Avatar
    Registered
    01/09/02
    Location
    Peutie
    Posts
    7,664
    iTrader
    0
    Mentioned
    4 Post(s)
    Reputation
    13/105
    Het probleem is dat getchar() alle buffer input uitleest, dus ook uw druk op de ENTER key. Als snelle oplossing wordt meestal het volgende toegepast:
    Code:
    letter = getchar();
    getchar(); // Read enter key
    Vanaf nu gaan we verder op BeyondGaming!
    In deze thread wordt uitgelegd hoe je jouw account kan migreren.
    no votes  

  3. #3

    Registered
    28/07/05
    Posts
    6
    iTrader
    0
    Mentioned
    0 Post(s)
    fantastisch. Nu doet hij wat ik in gedachten had. Dankuwel Tyfius. Het kan blijkbaar zo eenvoudig zijn.

    Is dit met scanf() ook de oorzaak of heeft dat een andere reden. Met die functie doet hij helemaal gek Maar ja, al meerdere die af raden dat te gebruiken voor een letter in te lezen.
    Last edited by Shinma; 25-12-2009 at 22:22. Reason: typfout
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in