Was bedeutet “f” in printf von C?
Was bedeutet f in printf? [closed]
Sharan
Das f
in printf
steht für formatiertwird zum Drucken mit formatierter Ausgabe verwendet.
-
Danke… also wenn ich schreibe einfach ausdrucken, geht das dann…
– Scharan
25. Mai 2012 um 21:44 Uhr
-
@Sharan Chandran: Es gibt keine
print
Funktion in der C-Standardbibliothek.– K-ballo
25. Mai 2012 um 21:46 Uhr
-
@SharanChandran Die nicht formatierte Version wird nur aufgerufen
puts
.– Chris Reis
25. Mai 2012 um 23:09 Uhr
Wie andere angemerkt haben, die nachlaufend f
zeigt formatierte Ausgabe (oder formatierte Eingabe für Funktionen in der scanf
Familie).
Ich füge jedoch hinzu, dass die Unterscheidung wichtig ist, weil es für Aufrufer wichtig ist zu wissen, dass von der Zeichenfolge eine Formatbezeichner-Semantik erwartet wird. Tun Sie dies beispielsweise nicht:
char* s = get_some_user_input();
printf(s); // WRONG. Instead use: printf("%s", s) or fputs(stdout, s)
Wenn s
passiert zu enthalten %
Zeichen, drucken Sie es direkt mit printf
kann dazu führen, dass auf nicht vorhandene Argumente zugegriffen wird, was zu undefiniertem Verhalten führt (und dies ist eine Ursache für einige Sicherheitslücken). Denken Sie an diese Namenskonvention, wenn Sie jemals Ihre eigene definieren printf
-wie variadische Funktionen.
Wenn ich mich nicht irre, steht printf für “Print formatted data to stdout”.
-
Einfach “formatiert drucken” —
stdout
wird einfach als selbstverständlich angesehen, solange Sie nichts anderes mit angebenfprintf
.– Jerry Sarg
25. Mai 2012 um 21:52 Uhr
Philipp Schmidt
printf ermöglicht die Formatierung, während print dies nicht tut. Außerdem existiert print nicht in C. Ich weiß nicht einmal, was printg ist.
Ich habe gerade angefangen, C-Programmierung zu lernen … Ich entschuldige mich, wenn diese Frage dumm ist …
– Scharan
25. Mai 2012 um 21:47 Uhr
Was ist an der Frage vage oder mehrdeutig? Wie ist es nicht vernünftig zu beantworten? Es gibt sicherlich vernünftige Antworten. (Es scheint auch lustig zu sein, dass K-ballo einer der Leute war, die dies trotz der akzeptierten Antwort geschlossen haben.)
– jamesdlin
26. Mai 2012 um 2:36 Uhr
Es ist eine echte Frage, die aber schnell gegoogelt werden könnte (wie viele andere Fragen): google.com/… Daher ist es doppelt, also stimme ich für das Schließen, aber aus einem anderen Grund.
– Ofer Zelig
16. Dezember 2018 um 5:29 Uhr
Google-Fähigkeit sollte nicht die Grundlage für das Schließen einer Frage sein. Google indiziert StackOverflow; daher können alle Fragen und Antworten zu SO implizit bei Google gesucht werden.
– jamesdlin
1. April 2019 um 20:52 Uhr