Sono inclinato alla programmazione C. Ho scritto un ciclo dispari ma non funziona mentre utilizzo %c
in scanf()
.
ecco il codice:Il ciclo dispari non funziona utilizzando% c
#include<stdio.h>
void main()
{
char another='y';
int num;
while (another =='y')
{
printf("Enter a number:\t");
scanf("%d", &num);
printf("Sqare of %d is : %d", num, num * num);
printf("\nWant to enter another number? y/n");
scanf("%c", &another);
}
}
Ma se io uso %s
in questo codice, per esempio scanf("%s", &another);
, allora funziona bene.
Perché succede? Qualche idea?
Quando si digita il 'num' e si preme INVIO, quindi il codice ASCII di ENTER viene memorizzato nel buffer scanf e ogni volta che si legge il prossimo carattere singolo, non si attenderà l'input dell'utente e il codice ASCII' ENTER' verrà memorizzato nella variabile 'another'. –