ultimamente sto studiando il C solo che mi sono venuti dei dubbi sulla funzione scanf
ho provato a scriver qualche riga di codice :
codice:
#include<stdio.h>
void main()
{
char A;
printf("Inserire A: ");
scanf("%c", &A);
printf("\nA: %c \n", A);
}
qui ho notato che inserendo più di un carattere quello preso in considerazione è solo il primo, quindi inserendo QWE l'output ottenuto è
A: Q
ho provato poi a modificare il codice cosi:
codice:
#include<stdio.h>
void main()
{
char A;
printf("Inserire A: ");
do
{
scanf("%c", &A);
printf("\nA: %c \n", A);
}while(A!='\n');
}
in questo caso inserendo QWE l'output ottenuto è stato
A: Q
A: W
A: E
A:
ora io ho pensato che il comportamento è dovuto ad un buffer che si riempe e che va quindi ad "inviare automaticamente" l'input ai vari scanf dei successivi cicli, è corretto?
se si c'è un modo per svuotare questo buffer?
ciao