Ho un dubbio molto sciocco. Quando stavo insegnando al mio amico C-programma, mi ha chiesto "perché usiamo printf, non può essere printg o solo stampa". Non potevo rispondergli. Quindi c'è davvero una ragione dietro la scelta di printf in programmazione C?C - Perché printf e non solo stampa?
risposta
Il f
in printf
corrisponde a formattato, è utilizzato per la stampa con output formattato.
Grazie ... Quindi se scrivo solo stampa, funzionerà ... – Sharan
@Sharan Chandran: Non c'è Funzione 'print' nella libreria standard C. –
@SharanChandran La versione non formattata viene chiamata 'puts'. –
printf consente la formattazione, mentre la stampa non lo fa. Inoltre, la stampa non esiste in C. Non so nemmeno cosa sia Printg.
Non so che cosa 'print' sia o ... –
sì, ho appena ricordato che non esiste anche :) è passato molto tempo da quando ho codificato qualcosa in diretta c –
Se non sbaglio, printf sta per "Stampa dati formattati su stdout".
Just" print formatted "- 'stdout' è dato per scontato fino a quando non si specifica diversamente con' fprintf'. –
Come altri hanno notato, il trascinamentof
indica output formattato (o ingresso formattato per funzioni nel scanf
famiglia).
Tuttavia, aggiungo che la distinzione è importante perché è importante che i chiamanti sappiano che la stringa avrà una semantica specifica per il formato. Ad esempio, non farlo:
char* s = get_some_user_input();
printf(s); // WRONG. Instead use: printf("%s", s) or fputs(stdout, s)
Se s
accade per contenere %
caratteri, stamparlo direttamente con printf
può causare l'accesso argomenti inesistenti, che porta a un comportamento indefinito (e questo è un motivo di alcune vulnerabilità di sicurezza). Tenere presente questa convenzione di denominazione se si definiscono le proprie funzioni variadic printf
-like.
- 1. Stampa di un char con printf
- 2. Stampa costante del valore esponenziale utilizzando printf in c
- 3. fork() in C utilizzando printf
- 4. Quando printf ("% s", char *) interrompe la stampa?
- 5. C++ e printf - output di caratteri strani
- 6. Stampa caratteri n spazio - (f) formato printf
- 7. Numero complesso C e printf
- 8. Perché questo codice stampa solo 42?
- 9. Perché strtof non stampa il float corretto?
- 10. Perché StringBuilder non stampa?
- 11. Perché awk non stampa le nuove righe?
- 12. Come si stampa il carattere '%' con 'printf'?
- 13. printf, sprintf stampa almeno due cifre decimali
- 14. printf e puntatori
- 15. Che cos'è% * c% * c in `printf`?
- 16. arm-none-eabi-gcc: numero float di stampa utilizzando printf
- 17. c perché stampa un numero negativo?
- 18. C++ su Linux non riconosce comandi come exit() e printf()
- 19. printf e wprintf in singolo codice C
- 20. Perché C stampa i miei valori esadecimali in modo errato?
- 21. Perché console.log() non stampa nulla?
- 22. Perché questo programma in C stampa caratteri strani in uscita?
- 23. Perché printf funziona con stringhe gestite?
- 24. Stringhe e carattere con printf
- 25. Quando printf non riesce a stampare?
- 26. Perché i parametri Unicode del formato printf non vengono stampati?
- 27. Perché non scriviamo int x = printf ("testo"); poiché l'istruzione printf() restituisce un valore intero ogni volta?
- 28. Stampa solo un iFrame
- 29. printf% f con solo 2 numeri dopo il punto decimale?
- 30. Perché questo codice che utilizza printf e cout non ha l'output previsto?
Ho appena iniziato ad apprendere la programmazione in C ... Mi scuso se questa domanda è sciocca ... – Sharan
Non esiste una domanda stupida. Aspetta, sì, c'è. Ma questo non è davvero un esempio di uno. –
Cosa c'è di vago o ambiguo riguardo alla domanda? Come non è ragionevolmente rispondibile? Ci sono certamente risposte ragionevoli. (Sembra anche divertente che K-ballo fosse una delle persone che ha chiuso questo nonostante abbia la risposta accettata.) – jamesdlin