Hoi allemaal,
Met school zijn we dit jaar begonnen met het leren van de programmeertaal C. Voor deze week hadden we een opdracht gehad met structures en file operaties. Alles lukt me wel, maar ik stuit op 1 probleempje, en ik kom er maar niet uit hoe dat kan.
Hier de stuk uit mijn code die het probleem geeft:
Het probleem: Ik vraag dus om de lus opnieuw te starten, door het inlezen van 'j' of 'n' in de char ch. Echter, het programmatje geeft mij helemaal niet de mogelijkheid om j of n in te typen, het stopt gewoon. De lus wordt bijgevolg maar 1 keer uitgevoerd, omdat ik hem geen tweede (of meerdere keren) keer kan laten uitvoeren, want hij vraagt niet om de input. Dit heb ik zowel met de "scanf functie", als met de "getchar" uit conio.h.
Weet iemand hoe dat komt? Volgens mij lijkt dit op een compiler bugje? Ik heb al geprobeerd de buffer te legen, door "fflush(stdin);" te typen voor de scanf/getchar functie: geen effect.
Met school zijn we dit jaar begonnen met het leren van de programmeertaal C. Voor deze week hadden we een opdracht gehad met structures en file operaties. Alles lukt me wel, maar ik stuit op 1 probleempje, en ik kom er maar niet uit hoe dat kan.
Hier de stuk uit mijn code die het probleem geeft:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include <stdio.h>
#include <stdlib.h>
#include <conio.h> // getchar()
void main (void)
{
char ch = 'j';
while (ch == 'j')
{
printf("Lus opnieuw uitvoeren? ");
// ... code...
scanf("%c",&ch);
// ch = getchar();
}
} |
Het probleem: Ik vraag dus om de lus opnieuw te starten, door het inlezen van 'j' of 'n' in de char ch. Echter, het programmatje geeft mij helemaal niet de mogelijkheid om j of n in te typen, het stopt gewoon. De lus wordt bijgevolg maar 1 keer uitgevoerd, omdat ik hem geen tweede (of meerdere keren) keer kan laten uitvoeren, want hij vraagt niet om de input. Dit heb ik zowel met de "scanf functie", als met de "getchar" uit conio.h.
Weet iemand hoe dat komt? Volgens mij lijkt dit op een compiler bugje? Ik heb al geprobeerd de buffer te legen, door "fflush(stdin);" te typen voor de scanf/getchar functie: geen effect.