Ik heb hier een probleem en geraak er maar niet uit! Volgens mij is het iets simpel maar ben er al ettelijke uren mee bezig
Probleem is, wat ik ook intyp, ik krijg altijd dat het een getal is. Heb dan eens gedebugged, dat getal laten weergeven, en blijkbaar neemt hij voor welke letter dat ik ook intyp, het getal 8. Als ik nu intyp "hallo" dan wordt het nummer 8 opgeslagen in getal. Hoe komt dat? Ik dacht dat hij de ASCII waarde ging opslaan van de letter, en dat ik dan zo zou kunnen casten naar een char en daarop de isalpha() functie op toepassen, maar dit gaat nu niet. Iemand een idee'tje hoe ik verder kan om te checken of als de gebruiker een getal heeft ingevoerd of iets anders?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| int getal;
int controle = 0;
while(controle != 1) {
printf("Geef getal in: ");
scanf("%d", &getal);
if(!isdigit(getal)){
printf("Het is een getal");
controle++;
fflush(stdin);}
else{
printf("Het is geen getal");
fflush(stdin);}
} |
Probleem is, wat ik ook intyp, ik krijg altijd dat het een getal is. Heb dan eens gedebugged, dat getal laten weergeven, en blijkbaar neemt hij voor welke letter dat ik ook intyp, het getal 8. Als ik nu intyp "hallo" dan wordt het nummer 8 opgeslagen in getal. Hoe komt dat? Ik dacht dat hij de ASCII waarde ging opslaan van de letter, en dat ik dan zo zou kunnen casten naar een char en daarop de isalpha() functie op toepassen, maar dit gaat nu niet. Iemand een idee'tje hoe ik verder kan om te checken of als de gebruiker een getal heeft ingevoerd of iets anders?