-
25-12-2009, 21:17 #1Member
- 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.
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:Code:char letter; int pogingen = 10; while ( pogingen > 0 ) { printf ("\n\nDoe een poging: "); letter = getchar(); pogingen--; }
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
-
-
25-12-2009, 21:48 #2Crew Member
- 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
-
25-12-2009, 22:14 #3Member
- 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
