Heim > Artikel > Backend-Entwicklung > Unterschied zwischen scanf() und gets() in C (Codebeispiel)
scanf()-Funktion
Wird zum Lesen von Eingaben (char, char) von der Standardeingabe (Tastatur) verwendet ) Zeichenfolge, numerische Daten).
Es wird verwendet, um Eingaben zu lesen, bis ein Leerzeichen, ein Zeilenumbruchzeichen oder ein Dateiende (EOF) auftritt.
Siehe zum Beispiel den folgenden Code:
#include <stdio.h> int main() { char str[20]; printf("enter something\n"); scanf("%s", str); printf("you entered: %s\n", str); return 0; }
Die Eingabe hier wird vom Benutzer bereitgestellt und die Ausgabe sieht wie folgt aus:
输入: Geeks for Geeks 输出: Geeks 输入: Computer science 输出: Computer
gets( ) Funktion
Wird zum Lesen von Eingaben von der Standardeingabe (Tastatur) verwendet. Es wird verwendet, um Eingaben zu lesen, bis ein Newline-Zeichen oder ein Dateiende (EOF) auftritt.
#include <stdio.h> int main() { char str[20]; printf("enter something\n"); gets(str); printf("you entered : %s\n", str); return 0; }
Hier wird die Eingabe vom Benutzer wie folgt bereitgestellt
输入: Geeks for Geeks 输出: Geeks for Geeks 输入: Computer science 输出: Computer science
Der Hauptunterschied zwischen ihnen ist:
scanf() liest die Eingabe bis ein Leerzeichen, ein Zeilenumbruch oder ein Dateiende (EOF) auftritt. Während gets() die Eingabe liest, bis ein Zeilenumbruch oder ein Dateiende (EOF) auftritt, hört gets() nicht auf, die Eingabe zu lesen, wenn ein Leerzeichen auftritt wird angetroffen, behandelt das Leerzeichen jedoch als Zeichenfolge. scanf kann mehrere Werte unterschiedlicher Datentypen lesen, während gets() nur String-Daten abrufen kann.
Der Unterschied kann in tabellarischer Form wie folgt dargestellt werden:
SCANF() | GETS() |
当scanf()用于读取字符串输入时,它会在遇到空格,换行符或文件结束时停止读取 | 当gets()用于读取输入时,它会在遇到换行符或End Of File时停止读取输入。 当它将空格视为字符串时,它不会停止读取遇到空格的输入。 |
它用于读取任何数据类型的输入 | 它仅用于字符串输入。 |
So lesen Sie den vollständigen Satz des Benutzers mit scanf()
Tatsächlich können wir scanf() verwenden, um den gesamten String zu lesen. Beispielsweise können wir %[^n]s in scanf() verwenden, um den gesamten String zu lesen.
#include <stdio.h> int main() { char str[20]; printf("Enter something\n"); // Here \n indicates that take the input // until newline is encountered scanf("%[^\n]s", str); printf("%s", str); return 0; }
Der obige Code liest die Zeichenfolge, bis er auf ein Zeilenumbruchzeichen trifft.
Beispiel:
输入: Geeks for Geeks 输出: Geeks for Geeks 输入: Computer science 输出: Computer science
Verwandte Empfehlungen: „C-Tutorial“
In diesem Artikel geht es um die Beziehung zwischen scanf() und gets() in C Die Unterschiede werden vorgestellt, ich hoffe, es wird Freunden in Not helfen!
Das obige ist der detaillierte Inhalt vonUnterschied zwischen scanf() und gets() in C (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!