26/11/09 12:00
HackerV88
Salve vorrei leggere da tastiera una stringa comprensiva di spazi che termina con la pressione del tasto enter.COmeposso fare?
aaa
26/11/09 13:45
Guglielmo
Utilizza la funzione fgets.
Ecco il suo prototipo:
char *fgets(char *s, int size, FILE *stream);
Come primo argomento gli passi il vettore che conterrà la stringa, come secondo la grandezza dello stesso, e come ultimo lo stream da cui vuoi leggere dati(in questo caso stdin).
Ultima modifica effettuata da Guglielmo 26/11/09 13:46
aaa
26/11/09 14:46
lorenzo
appunto perché riceve uno stream la fgets viene usata per leggere dai files....devi usare la gets(senza la f davanti) che legge direttamente dalla console
aaa
26/11/09 15:03
Guglielmo
Postato originariamente da Lawliet:
Postato originariamente da lorenzo:
appunto perché riceve uno stream la fgets viene usata per leggere dai files....devi usare la gets(senza la f davanti) che legge direttamente dalla console
Tempo fa, grazie al forum e un utente ho capito che era meglio usare la fgets, e mettere come flusso di stream: stdin così legge da tastiera ed è più sicuro rispetto a gets che è soggetta da buffer overflow
Si teoricamente bisognerebbe usare la gets per l'stdin, però è rischiosa perchè se l'utente inserisce un numero di caratteri superiore alla grandezza del vettore si rischia di avere problemi non tanto carini(vedi buffer overflow).
Ultima modifica effettuata da Guglielmo 26/11/09 15:04
aaa
26/11/09 20:14
HackerV88
Buonasera,
allora mi postate qualche linea di codice per farmi capire?
aaa