Hallo,
Ik ben nieuw hier op helpmij.nl. Ik ben sinds kort begonnen met programmeren in C en C++, maar dat gaat niet altijd even vlot...
Vandaar hieronder een eerste vraagje:
In onderstaande code loopt alles goed totdat ik bij de scanf iets niet numeriek ingeef. Dan komt het programma in een oneindige loop.
Hoe kom ik hier in een oneindige lus en hoe kan ik het vermijden?
(antwoord[] is een integer en dat zou ik ook graag zo houden, want het wordt over het volledige programma nogal veel gebruikt.)
alvast bedankt!
for (i = 1; i <= AANTAL_VRAAG; i++)
{
start:
printf("\nStelling %d: %s\n",i, vraag[i-1]);
printf("-> Uw mening: ");
scanf("%d",&antwoord[i-1]);
if(isdigit(antwoord[i-1]))
{
if (1 > antwoord[i-1] || antwoord[i-1] > 4)
{
printf("\n*** Gelieve enkel getallen tussen 1 en 4 in te vullen***\n");
goto start;
}
}
else
{
printf("\n*** Gelieve enkel getallen tussen 1 en 4 in te vullen***\n");
goto start;
}
printf("\n---------------------------------------------------------------------\n");
}
Ik ben nieuw hier op helpmij.nl. Ik ben sinds kort begonnen met programmeren in C en C++, maar dat gaat niet altijd even vlot...
Vandaar hieronder een eerste vraagje:
In onderstaande code loopt alles goed totdat ik bij de scanf iets niet numeriek ingeef. Dan komt het programma in een oneindige loop.
Hoe kom ik hier in een oneindige lus en hoe kan ik het vermijden?
(antwoord[] is een integer en dat zou ik ook graag zo houden, want het wordt over het volledige programma nogal veel gebruikt.)
alvast bedankt!
for (i = 1; i <= AANTAL_VRAAG; i++)
{
start:
printf("\nStelling %d: %s\n",i, vraag[i-1]);
printf("-> Uw mening: ");
scanf("%d",&antwoord[i-1]);
if(isdigit(antwoord[i-1]))
{
if (1 > antwoord[i-1] || antwoord[i-1] > 4)
{
printf("\n*** Gelieve enkel getallen tussen 1 en 4 in te vullen***\n");
goto start;
}
}
else
{
printf("\n*** Gelieve enkel getallen tussen 1 en 4 in te vullen***\n");
goto start;
}
printf("\n---------------------------------------------------------------------\n");
}