PDA

Visualizza la versione completa : [C] Vantaggi nell'uso di stdin e stdout


torn24
30-01-2011, 16:15
Ciao, frequentando il forum noto spesso l'utilizzo delle funzioni


fscanf(stdin," ",...);
fprintf(stdout," ",...);

rispettivamente con stdin e stdout mi chiedo se esista un vantaggio rispetto
all'uso delle funzioni scanf e printf ?

So che l'utilizzo della funzione fgets(variabile,int,stdin) comporta il vantaggio di definire
il numero di caratteri da leggere , quindi migliore di gets
ma sulle altre funzioni esiste un vantaggio ?

ramy89
30-01-2011, 19:29
A mio parere sono equivalenti,printf la versione semplice di fprintf fatta con lo scopo di non perdere tempo a scrivela intera,senza contare che chi impara per la prima volta non sa cosa sono stdin e stdout per cui l' usare la fprintf o la fscanf creerebbe solo confusione.

torn24
01-02-2011, 13:21
Si credo anche io che siano equivalenti ,volevo un parere da altre persone grazie della risposta ;)

MItaly
01-02-2011, 14:33
Sono perfettamente equivalenti. Lo standard dice esplicitamente:


7.19.6.3 2
The printf function is equivalent to fprintf with the argument stdout interposed before the arguments to printf.

7.19.6.4 2
The scanf function is equivalent to fscanf with the argument stdin interposed before the arguments to scanf.

YuYevon
01-02-2011, 15:30
Evidentemente qualcuno, convintosi che printf() e scanf() siano funzioni brutte e cattive da evitare assolutamente, ha "pensato bene" di ricorrere a fprintf() e fscanf() richiamate rispettivamente su stdout e stdin, senza sapere innanzitutto che non cambia nulla e poi che i presunti problemi delle due funzioni sono *generalmente* evitabili con un po' di attenzione.

ramy89
01-02-2011, 17:30
Originariamente inviato da YuYevon
Evidentemente qualcuno [...] ha "pensato bene" di ricorrere a fprintf() e fscanf() richiamate rispettivamente su stdout e stdin, senza sapere innanzitutto che non cambia nulla e poi che i presunti problemi delle due funzioni sono *generalmente* evitabili con un po' di attenzione.

Se trovo chi stato lo ammazzo,eheh no calma ragazzi.non andate a guardare la cronologia dei miei post :zizi:

Loading