PDA

Visualizza la versione completa : [C] input da tastiera


dabadort
10-07-2013, 19:18
domanda sicuramente banale, che però qualche grattacapo me lo sta dando... Per prelevare l'input da tastiera oltre alla funzione scanf quale usate? perchè la scanf si ferma allo spazio e quindi nn è sempre comoda. la funzione gets leggo che è deprecata, la fgets la si usa per i file... giusto? allora quale? grazie ;)

oregon
10-07-2013, 19:30
fgets si usa anche per lo stdin

dabadort
10-07-2013, 19:36
grazie per la risposta oregon.... ma alla fgets non devi dare la lunghessa dei byte da leggere? nel caso di input letti da tastiera come faccio a sapere prima la lunghezza della stringa?

MItaly
10-07-2013, 19:50
Non è la lunghezza della stringa da leggere, ma la lunghezza massima accettabile. In C hai sempre e comunque un limite di lunghezza per una stringa, ovvero la quantità di memoria che hai allocato per il buffer in cui stai leggendo; gets infatti è deprecata proprio perché non permette di specificare la lunghezza massima della stringa, per cui se la stringa da leggere è troppo lunga sfora dal buffer, rischiando di mandare in crash il programma.

oregon
10-07-2013, 21:00
Originariamente inviato da dabadort
grazie per la risposta oregon.... ma alla fgets non devi dare la lunghessa dei byte da leggere? nel caso di input letti da tastiera come faccio a sapere prima la lunghezza della stringa?

Dai un'occhiata attenta all'help ... http://www.cplusplus.com/reference/cstdio/fgets/

dabadort
18-07-2013, 11:54
grazie mille per le risposte, è tutto chiaro ;) ;) ;)

MItaly
18-07-2013, 13:41
:ciauz:

Loading