BESTE WEBSITE FÜR WEBENTWICKLER
C Sprache. W3Schools auf Deutsch. Unterricht für Anfänger

Ua En Es

C Benutzereingabe


Benutzereingabe

Sie haben bereits erfahren, dass printf() zur Ausgabe von Werten in C verwendet wird.

Um Benutzereingaben zu erhalten, können Sie die Funktion scanf() verwenden:

Beispiel

Vom Benutzer eingegebene Ausgangsnummer:

// Erstellen Sie eine Ganzzahlvariable, die die Nummer speichert, die wir vom Benutzer erhalten
int myNum;

// Bitten Sie den Benutzer, eine Zahl einzugeben
printf("Type a number: \n");

// Rufen Sie die Anzahl der Benutzertypen ab und speichern Sie sie
scanf("%d", &myNum);

// Geben Sie die vom Benutzer eingegebene Nummer aus
printf("Deine Nummer ist: %d", myNum);
Try it Yourself »

Die Funktion scanf() benötigt zwei Argumente: den Formatbezeichner der Variablen (%d im obigen Beispiel) und den Referenzoperator (&myNum), der die Speicheradresse der Variablen speichert.

Tipp: Mehr über Speicheradressen und Funktionen erfahren Sie in das nächste Kapitel.


Mehrere Eingaben

Die Funktion scanf() ermöglicht auch mehrere Eingaben (eine Ganzzahl und ein Zeichen im folgenden Beispiel):

Beispiel

// Erstellen Sie eine int- und eine char-Variable
int myNum;
char myChar;

// Bitten Sie den Benutzer, eine Zahl UND ein Zeichen einzugeben
printf("Geben Sie eine Zahl UND ein Zeichen ein und drücken Sie die Eingabetaste: \n");

// Rufen Sie die Nummer UND das Zeichen der Benutzertypen ab und speichern Sie sie
scanf("%d %c", &myNum, &myChar);

// Drucken Sie die Nummer aus
printf("Deine Nummer ist: %d\n", myNum);

// Drucken Sie das Zeichen aus
printf("Dein Charakter ist: %c\n", myChar);
Try it Yourself »

Nehmen Sie eine String-Eingabe vor

Sie können auch eine vom Benutzer eingegebene Zeichenfolge abrufen:

Beispiel

Geben Sie den Namen eines Benutzers aus:

// Erstellen Sie eine Zeichenfolge
char firstName[30];

// Bitten Sie den Benutzer, Text einzugeben
printf("Geben Sie Ihren Vornamen ein: \n");

// Holen Sie sich den Text und speichern Sie ihn
scanf("%s", firstName);

// Geben Sie den Text aus
printf("Hello %s", firstName);
Try it Yourself »

Hinweis: Wenn Sie in scanf() mit Zeichenfolgen arbeiten, müssen Sie die Größe der Zeichenfolge/des Arrays angeben (wir haben eine sehr hohe Zahl verwendet, in unserem Beispiel 30). Beispiel, aber dann sind wir zumindest sicher, dass genügend Zeichen für den Vornamen gespeichert werden) und Sie müssen den Referenzoperator nicht verwenden (&).

Allerdings weist die Funktion scanf() einige Einschränkungen auf: Sie betrachtet Leerzeichen (Leerzeichen, Tabulatoren usw.) als Abschlusszeichen, was bedeutet, dass nur ein einzelnes Zeichen angezeigt werden kann Wort (auch wenn Sie viele Wörter eingeben). Zum Beispiel:

Beispiel

char fullName[30];

printf("Geben Sie Ihren vollständigen Namen ein: \n");
scanf("%s", &fullName);

printf("Hello %s", fullName);

// Geben Sie Ihren vollständigen Namen ein: John Doe
// Hello John

Aus dem obigen Beispiel würden Sie erwarten, dass das Programm „John Doe“ ausgibt, aber es gibt nur „John“ aus.

Deshalb; bei der Arbeit mit Zeichenfolgen verwenden wir häufig die Funktion fgets(), um eine Textzeile zu lesen. Beachten Sie, dass Sie die folgenden Argumente angeben müssen: den Namen der Zeichenfolgenvariablen, sizeof(string_name), und stdin:

Beispiel

char fullName[30];

printf("Geben Sie Ihren vollständigen Namen ein: \n");
fgets(fullName, sizeof(fullName), stdin);

printf("Hello %s", fullName);

// Geben Sie Ihren vollständigen Namen ein: John Doe
// Hello John Doe
Try it Yourself »

Verwenden Sie die Funktion scanf(), um ein einzelnes Wort als Eingabe zu erhalten, und verwenden Sie fgets() für mehrere Wörter.