ultimamente sto studiando il C solo che mi sono venuti dei dubbi sulla funzione scanf
ho provato a scriver qualche riga di codice :
qui ho notato che inserendo più di un carattere quello preso in considerazione è solo il primo, quindi inserendo QWE l'output ottenuto ècodice:#include<stdio.h> void main() { char A; printf("Inserire A: "); scanf("%c", &A); printf("\nA: %c \n", A); }
A: Q
ho provato poi a modificare il codice cosi:
in questo caso inserendo QWE l'output ottenuto è statocodice:#include<stdio.h> void main() { char A; printf("Inserire A: "); do { scanf("%c", &A); printf("\nA: %c \n", A); }while(A!='\n'); }
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![]()

Rispondi quotando