So che tutti mi hanno detto di usare fgets e non ottenerlo a causa dell'overflow del buffer. Tuttavia, sono un po 'confuso riguardo il terzo parametro in fgets()
. A quanto ho capito, fgets dipende da:Funzione fgets() in C
char * fgets (char * str, int num, FILE * stream);
char* str
è il PTR a cui verrà memorizzato il mio ingresso.
num
è il numero massimo di caratteri da leggere.
ma che cos'è FILE *stream
? Se sto solo chiedendo all'utente di inserire una stringa (come una frase) dovrei semplicemente digitare "stdin
"?
E dovrei digitare FILE *stdin
nella parte superiore, vicino a main()
?
penso che il secondo parametro dovrebbe essere strlen (buffer) -1. A meno che il tuo buffer non sia un 11 byte. – ant2009
@robUK, che funzionerebbe solo se il buffer non erano tutti zeri per cominciare. Come menzionato dall'OP, i buffer overflow non sono realmente la preoccupazione della domanda. –