Ich habe einen sehr dummen Zweifel. Als ich meinem Freund C-Programm beibrachte, fragte er mich "warum benutzen wir printf, kann es nicht printg oder nur print sein". Ich konnte ihm nicht antworten. Also gibt es wirklich einen Grund hinter printf in C-Programmierung?C - Warum drucken und nicht nur drucken?
Antwort
Die f
in printf
steht für formatiert, es wird zum Drucken mit formatierter Ausgabe verwendet.
Danke ... Also, wenn ich nur Druck schreibe, wird es funktionieren ... – Sharan
@Sharan Chandran: Es gibt keine 'print' Funktion in C-Standard-Bibliothek. –
@SharanChandran Die nicht formatierte Version wird nur 'puts' genannt. –
printf ermöglicht das Formatieren, während der Druck nicht erfolgt. Außerdem gibt es in C keinen Druck. Ich weiß nicht einmal, was printg ist.
Ich weiß nicht, was "Print" ist auch ... –
ja, ich erinnerte mich gerade daran, dass es nicht auch existiert :) war eine lange Zeit seit ive codiert alles in gerade c –
Wenn ich mich nicht irre, steht printf für "Print formatierte Daten auf Standard".
Nur "Print formatiert" - 'stdout' wird als selbstverständlich vorausgesetzt, solange Sie mit' fprintf' nicht anders angeben. –
Wie andere festgestellt haben, die nachlauff
zeigt formatierte Ausgabe (oder formatierte Eingabe für Funktionen in der scanf
Familie).
Ich füge jedoch hinzu, dass die Unterscheidung von Bedeutung ist, weil es wichtig für Anrufer ist zu wissen, dass die Zeichenfolge erwartet wird, Format-Bezeichner Semantik zu haben. Zum Beispiel tun dies nicht:
char* s = get_some_user_input();
printf(s); // WRONG. Instead use: printf("%s", s) or fputs(stdout, s)
Wenn s
%
Zeichen enthalten geschieht, Drucken direkt mit printf
kann es zu nicht vorhandenen Argumente zuzugreifen, zu undefinierten Verhalten führen (und dies ist ein Grund für einige Sicherheitslücken). Beachten Sie diese Namenskonvention, wenn Sie jemals eigene printf
-ähnliche variadische Funktionen definieren.
- 1. Nur einen iFrame drucken
- 2. tcpdump nur drucken Urls
- 3. Drucken nur ein Textfeld
- 4. Drucken Partitionstabelle - C-Programm
- 5. Drucken in C# Konsolenfenster
- 6. Drucken Rechnung C# Winforms
- 7. C++ Cout Drucken langsam
- 8. nur Zeilen mit spezifischer Spalte nicht drucken *
- 9. grep - Zeile vorher drucken, nicht drucken Übereinstimmung
- 10. Warum TCL-Threads die Ausgabe nicht drucken
- 11. Nur Klassenname in EL drucken
- 12. Firefox Drucken nur 1. Seite
- 13. Formularzuführung in C# Drucken
- 14. Drucken Drucken Dialog
- 15. Python nur letzte Traceback drucken?
- 16. Drucken Klasseninformationen C# Formulare
- 17. Drucken von Strukturen in C++
- 18. C# Drucken mehrerer Seiten
- 19. C: Drucken große Zahlen
- 20. Drucken von Servlet, warum funktioniert das nicht
- 21. Warum funktioniert nicht drucken in einem Lambda?
- 22. Erstellen und Drucken von Tabellen aus C++
- 23. Warum "Echo '2'. Drucken (2) + 3" Drucken 521?
- 24. Dojo/Dijit und Drucken
- 25. Warum sollte ich Integer.toString() verwenden, anstatt nur Integer zu drucken?
- 26. C Debug Drucken von Makros
- 27. PDF programmatisch drucken - C# WinForms
- 28. Warum das falsche Ergebnis drucken?
- 29. Parser in C# und Drucken AST
- 30. C# MIDI Keyboard Output Detector und Drucken
Ich habe gerade angefangen, C-Programmierung zu lernen ... Ich entschuldige mich, wenn diese Frage dumm ist ... – Sharan
Es gibt keine so dumme Frage. Warte, ja, da ist es. Aber dieser ist nicht wirklich ein Beispiel für einen. –
Was ist an der Frage vage oder mehrdeutig? Wie ist es nicht vernünftig zu verantworten? Es gibt sicherlich vernünftige Antworten. (Es scheint auch lustig, dass K-Ballo einer der Leute war, die das trotz der akzeptierten Antwort geschlossen haben.) – jamesdlin