Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Ottenere valori interi
Forum - C/C++ - Ottenere valori interi

Avatar
Dedalpapero (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/12/2009

Segnala al moderatore
Postato alle 12:17
Domenica, 06/12/2009
Sebbene abbia sempre usato la funzione scanf() per ottenere in input qualsivoglia dato, un libro (forse un po' datato) che ho preso in biblioteca utilizza invece l'accoppiata di atoi() con all'interno gets(), per ricevere un valore prima come stringa e poi trasformarlo in intero ( correggetemi se sbaglio ). Ci sono delle differenze tra i due metodi ? Qual è il più " conveniente " ?

PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 12:40
Domenica, 06/12/2009
Penso che per la massima sicurezza dovresti usare fgets() e come stream STDIN. Poi l'atoi(). Comunque usa scanf("%d", &variabile). Oppure sempre per sicurezza fscanf() e di nuovo come stream STDIN. Dovrebbe prevenire i buffer overflow.

Ultima modifica effettuata da gio97 il 06/12/2009 alle 12:41


"Ditemi, sapete chi è... il ciaffo?"
"Questo essere trae origine da un arcaico lamer.
Tanto tempo fa, in una chat oscena oscena, il lamer f1192 si lamentava di non poter inserire le graffe, perché non aveva... IL CIAFFO"(L'uomo che sussurrava ai ciaffi)
PM Quote
Avatar
Dedalpapero (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/12/2009

Segnala al moderatore
Postato alle 12:54
Domenica, 06/12/2009
Continuando a leggere ho trovato una nota a riguardo (scusate):

Dice che non usa scanf() perché non è compatibile con tutti i dati, perché rende difficile l'inserimento di dati con spazi bianchi al loro interno e perché è una funzione di grandi dimensioni ( usa l'espressione 'sul tipo "bomba all'idrogeno per uccidere una formica"' )

PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 20:47
Domenica, 06/12/2009
Si usa scanf e printf quasi sempre. Lo fanno tutti. Se proprio devi farlo in qualche altro modo, io ti ho indicato altre 2 vie.


"Ditemi, sapete chi è... il ciaffo?"
"Questo essere trae origine da un arcaico lamer.
Tanto tempo fa, in una chat oscena oscena, il lamer f1192 si lamentava di non poter inserire le graffe, perché non aveva... IL CIAFFO"(L'uomo che sussurrava ai ciaffi)
PM Quote