Die Funktion printf

Die Funktion printf

Warum sollten wir diese Funktion zuerst verstehen und gründlich lernen? Weil wir sie im weiteren C-Unterricht sehr oft brauchen. Mit dieser Funktion lassen sich Inhalte auf der Konsole ausgeben.

1 Die Funktion printf

Wir haben sie bereits im vorherigen Beispiel verwendet.

// Aufruf von printf zur Textausgabe, \n bedeutet Zeilenumbruch
printf("hello, world\n");
Code-Sprache: Arduino (arduino)

printf() : Standard-Ausgabebibliotheksfunktion

Bei printf("Inhalt") übergeben wir einen String als Parameter; alle Zeichen zwischen den doppelten Anführungszeichen werden auf der Konsole angezeigt.

Jede Anweisung muss mit einem Semikolon ; abgeschlossen werden, das das Ende einer Anweisung markiert. Fehlt das Semikolon, gibt es einen Kompilierfehler. Unten sehen Sie ein Beispiel für eine Fehlermeldung:

C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:5:29: error: expected ';' before 'return'
     printf("hello, world\n")
                             ^
                             ;
     return 0;
     ~~~~~~Code-Sprache: PHP (php)

Wenn wir mehrzeiligen Text ausgeben wollen, schreiben wir es so:

#include <stdio.h>
main()
{
    printf("Erste Textzeile\n");
    printf("Zweite Textzeile\n");
}Code-Sprache: PHP (php)

2 Zeichenkette (String)

Eine Reihe von Zeichen, die mit englischen doppelten Anführungszeichen " " umschlossen wird, z.B. "hello, world\n"

In unseren vorherigen Beispielen wurden Strings als Parameter an printf übergeben, um den Text direkt auf der Konsole anzuzeigen.

Ein String darf nicht durch einen Zeilenumbruch geteilt werden. Der folgende Code erzeugt sofort einen Kompilierfehler:

// Falsches Beispiel: String auf zwei Zeilen aufgeteilt
printf("hello, world
");
Code-Sprache: Arduino (arduino)

Ausgabe des Kompilierfehlers

C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:6:11: warning: missing terminating " character
    printf("hello, world
           ^
hello.c:6:11: error: missing terminating " character
    printf("hello, world
           ^~~~~~~~~~~~~
hello.c:7:4: warning: missing terminating " character
    ");
    ^
hello.c:7:4: error: missing terminating " character
    ");
    ^~~
hello.c:8:5: error: expected expression before 'return'
     return 0;
     ^~~~~~
hello.c:8:14: error: expected ';' before '}' token
     return 0;
              ^
              ;
 }Code-Sprache: PHP (php)

3 Escape-Zeichen \n – Zeilenumbruch

\n ist eine spezielle Markierung der C-Sprache und steht für das Zeilenumbruch-Zeichen.

printf erzeugt keinen automatischen Zeilenumbruch; wir müssen manuell \n einfügen, damit der Cursor in die nächste Zeile springt.

Ohne \n wird alles auf einer Zeile angezeigt, siehe folgendes Beispiel:

#include <stdio.h>

int main()
{
    // Ohne \n: Beide Texte stehen auf einer Zeile nebeneinander
    printf("hello");
    printf("world");

    // Mit \n: Automatischer Zeilenumbruch nach der Ausgabe
    printf("\nhello\n");
    printf("world\n");

    return 0;
}Code-Sprache: PHP (php)
C:\cdemo>gcc hello.c -o hello.exe

C:\cdemo>hello
helloworld
hello
world

C:\cdemo>Code-Sprache: CSS (css)

Sie sehen, dass hello und world ungetrennt auf einer Zeile ausgegeben werden. Wenn Sie mit printf Text ausgeben und einen Zeilenumbruch wollen, denken Sie an \n. Ein einzelnes \n entspricht einem Druck auf die Enter-Taste. Zwei aufeinander folgende \n erzeugen zwei Zeilenumbrüche, also eine leere Zeile zwischen den Texten – genau wie zweimal Enter in einem Notizbuch drücken.

#include <stdio.h>

int main()
{
    printf("one\n\n");
    printf("two");
    return 0;
}Code-Sprache: PHP (php)

Ausführungsergebnis

C:\cdemo>gcc hello.c -o hello.exe

C:\cdemo>hello
one

two
C:\cdemo>Code-Sprache: CSS (css)

Mehrere separate printf-Aufrufe können kombiniert werden, um einen Text auf eine einzige Zeile zu bauen.

Sehen Sie das Beispiel:

#include <stdio.h>

int main()
{
    printf("hello, ");
    printf("world");
    printf("\n"); // Ein einziger Zeilenumbruch am Ende
}Code-Sprache: PHP (php)

Ergänzung zu häufigen Fehlern

#include <stdio.h>

Diese Präprozessor-Zeile zum Einbinden der Header-Datei endet ohne Semikolon ;

Um die Funktion printf nutzen zu können, müssen wir #include <stdio.h> einbinden, sonst entsteht ein Fehler.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert