Salve a tutti,
c'è per caso qualcuno tra voi che mi saprebbe spiegare questo comportamento strano del C?
Ora vi illustro...
Io carico un vettore di caratteri con un ciclo for e la getchar() inserendo alla fine anche il terminatore '\0';
...fin quì tutto bene...
Quando inserisco una printf con lo specificatore di formato %s riferito a quella stringa, la prima volta mi viene stampato solo il contenuto dopo un'eventuale new line '\n' contenuto nella stringa!
Tra l'altro questo problema non lo fa se prima della stringa stampo qualcos'altro!
Vi mostro il codice che sarà sicuramente più chiaro della mia spiegazione:
P.S: Provate a caricare la stringa con un'invio in mezzo e terminate con CTRL Z...codice:#include <stdio.h> main() { char c, stringa[20] ; int i ; for ( i = 0 ; i < ( 20 - 1 ) && ( c = getchar() ) != EOF ; i++ ) stringa[i] = c ; stringa[i] = '\0' ; printf("%s", stringa ) ; printf("\nSeconda stampa:\n%s", stringa ) ; }
esempio:
Groove'\n'
Man'ctrl Z'