So verwenden Sie die fgets () Funktion für die Texteingabe in C-Programmierung

Für eine Texteingabefunktion für allgemeine Zwecke in der Programmiersprache C, eine, die über den ersten Zwischenraumzeichen liest, versuchen Sie die fgets () Funktion. Hier ist das Format:

#include char * fgets (char * restrict s, int n, FILE * restrict stream) -

Erschreckend, nicht wahr? Das liegt daran, fgets () ist eine Datei-Funktion, die Text aus einer Datei liest, wie in # 147-Datei zu erhalten String. # 148- Das ist, wie Programmierer sprechen nach einem All-Nighter.

Da das Betriebssystem Standardeingabe wie eine Datei hält, können Sie fgets () verwenden, um Text von der Tastatur zu lesen.

Hier ist eine vereinfachte Version der fgets () Funktion, wie sie auf das Lesen Texteingabe gilt:

fgets (Schnur,Größe,stdin) -

In diesem Beispiel Schnur ist der Name eines char-Array, ein String variablen Größe ist die Menge an Text Eingang plus eins, die die gleiche Größe wie die char Array- sein sollte und stdin ist der Name der Standard-Eingabegerät, wie es in der Header-Datei stdio.h definiert.

DAS FGETS () Liest ein STRING

# include int main () {char name [10] -printf ( "Wer bist du?") -fgets (Name, 10, stdin) -printf ( "Gut, dass Sie,% s gerecht zu werden. n", name) - (0) zurückzukehren -}

Übung 1: Geben Sie den Quellcode aus dem fgets () Funktion Liest einen String in ein neues Projekt, ex0716. Kompilieren und Ausführen.

Die fgets () Funktion in Zeile 8 liest in Text. Der Text geht in die Namen-Array, das auf maximal zehn Zeichen in Zeile 5. Die Zahl 10 gibt an eingestellt ist, dass fgets () liest in nur neun Zeichen, eins weniger als die Zahl angegeben. Schließlich wird stdin als die angegebene # 147-Datei # 148-, von dem Eingang gelesen wird. stdin ist steindard imstellen.

Die char-Array muss ein zusätzliches Zeichen für die reserviert haben 0 am Ende einer Zeichenkette. Seine Größe muss die Größe der Eingabe gleich was Sie brauchen - plus eins.

Hier ist, wie das Programm ausgeführt wird:

Wer bist du? Danny GookinGut, dass Sie, Danny Goo zu treffen.

Nur die ersten neun Zeichen des Textes in der ersten Zeile eingegeben werden angezeigt. Warum nur neun? Aufgrund der Abschlusszeichen des Strings - NULL, oder 0. Der Raum für dieses Zeichen definiert wird, wenn der Name Array in Zeile 5 erzeugt, wenn fgets () wurden in zehn Zeichen zu lesen, anstatt neun, würde das Array überfluten, und das Programm könnte zu Fehlfunktionen.

Übung 2: Ändern Sie die Größe des Array im Quellcode von der fgets () Funktion Liest einen String auf einen konstanten Wert. Stellen Sie die Konstante nur drei Zeichen eingegeben werden können.

  • Die fgets () Funktion liest Text von der Standardeingabe, nicht direkt über die Tastatur.

  • Der zurückgegebene Wert von fgets () ist die Zeichenfolge, die eingegeben wurde.

Menü