Hauptunterschied – Scanf vs. Gets
Eine Funktion ist eine Reihe von Anweisungen, um eine bestimmte Aufgabe auszuführen. Ohne alle Anweisungen in dasselbe Programm zu schreiben, kann es in mehrere Funktionen aufgeteilt werden. Bei der Programmierung kann der Benutzer eigene Funktionen definieren. Es gibt auch Funktionen, die von Programmiersprachen bereitgestellt werden. Die C-Sprache bietet eine Reihe von Funktionen, sodass der Programmierer sie direkt verwenden kann, ohne sie von Anfang an zu implementieren. Zwei solche Funktionen, die von der C-Sprache bereitgestellt werden, sind scanf und gets. Dieser Artikel beschreibt den Unterschied zwischen diesen beiden Funktionen. Der Hauptunterschied zwischen scanf und gets besteht darin, dass scanf die Eingabe beendet, wenn ein Leerzeichen, ein Zeilenumbruch oder ein Dateiende (EOF) auftritt, während gets ein Leerzeichen als Teil der Eingabezeichenfolge betrachtet und die Eingabe beendet, wenn ein Zeilenumbruch oder EOF auftritt.
Was ist scanf?
Die scanf-Funktion kann Eingaben von der Tastatur lesen und sie gemäß dem angegebenen Formatbezeichner speichern. Es liest die Eingabe, bis ein Leerzeichen, Zeilenumbruch oder EOF auftritt. Die Syntax lautet wie folgt.
scanf(“format string”, Adressliste der Variablen);
Beziehen Sie sich auf das unten angegebene Beispiel, um scanf zu verstehen.
Abbildung 01: Scanf mit einer Eingabe
Gemäß obigem Programm ist die Eingabe von der Tastatur eine ganze Zahl, also ist der Formatbezeichner %d. Wenn es einen Zeichenwert erhält, ist der Formatbezeichner %c. Wenn ein Fließkommawert abgerufen wird, ist der Formatbezeichner %f. Der empfangene Eingabewert soll in der Zahl-Variablen gespeichert werden. Daher wird die Adresse der Variablennummer an die scanf-Funktion übergeben. Jetzt enthält die Zahlenvariable den vom Benutzer über die Tastatur eingegebenen Wert. Schließlich können wir die Zahlenvariable drucken, um den Wert zu überprüfen.
Es können auch mehrere Werte gleichzeitig empfangen werden.
Abbildung 02: scanf mit mehreren Eingaben
Die empfangenen Eingaben werden in den Variablen Nummer1 und Nummer2 gespeichert. Werte können mit printf überprüft werden.
Was bekommt?
gets-Funktion wird verwendet, um Eingaben von der Tastatur zu erh alten, bis ein Zeilenumbruch oder EOF auftritt. Der Leerraum wird als Teil der Eingabe betrachtet. Die Syntax für die Funktion gets lautet wie folgt.
gets(“wo der String gespeichert werden soll”);
Wenn beim Empfangen des Strings ein Fehler auftritt, gibt die Gets-Funktion einen Nullwert zurück.
Siehe Beispiel unten,
Abbildung 03: bekommt
Die Eingabe wird von der Gets-Funktion entgegengenommen und in Variable word1 gespeichert. Wenn der Programmierer scanf anstelle von gets verwendet und eine Zeichenfolge wie „Hallo Welt“eingegeben hat, liest scanf die Zeichenfolge aufgrund der Leerzeichen als zwei Zeichenfolgen. Aber Gets liest es als eine Zeichenfolge „Hallo Welt“.
Was sind die Ähnlichkeiten zwischen scanf und gets?
- Beides sind Funktionen der Programmiersprache C.
- Beide sollten die Header-Datei stdio.h enth alten, um diese Funktionen nutzen zu können.
- Beide können verwendet werden, um Eingaben von der Standardeingabe zu erh alten.
Was ist der Unterschied zwischen scanf und gets?
scanf vs gets |
|
scanf ist eine C-Funktion, die Eingaben von der Standardeingabe liest, bis sie auf Leerzeichen, Zeilenumbruch oder EOF stoßen. | gets ist eine C-Funktion, um Eingaben von der Standardeingabe zu lesen, bis sie auf einen Zeilenumbruch oder EOF stoßen. Es betrachtet Leerzeichen als Teil der Eingabe. |
Syntax | |
Die Funktion scanf nimmt den Formatstring und die Liste der Adressen der Variablen. z. B. scanf(“%d”, &number); | Die Funktion gets nimmt den Namen der Variablen, um den empfangenen Wert zu speichern. Z. B. bekommt(name); |
Flexibilität | |
scanf kann mehrere Werte verschiedener Datentypen lesen. | gets() erhält nur Zeichenkettendaten. |
Zusammenfassung – scanf vs gets
scanf und gets sind Funktionen, die von der Programmiersprache C bereitgestellt werden. Der Benutzer muss diese Funktionen nicht von Anfang an implementieren. Sie können sie direkt in ihren Programmen verwenden. Der Unterschied zwischen scanf und gets besteht darin, dass scanf die Eingabe beendet, wenn ein Leerzeichen, ein Zeilenumbruch oder ein End Of File (EOF) auftritt, und ein Leerzeichen als Teil der Eingabezeichenfolge betrachtet und die Eingabe beendet, wenn ein Zeilenumbruch oder EOF auftritt. Die Verwendung von scanf oder gets hängt davon ab, wie Benutzereingaben von der Standardeingabe empfangen werden, die meistens die Tastatur ist. scanf ist flexibler als andere.
Laden Sie die PDF-Version von scanf vs gets herunter
Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitationshinweis für Offline-Zwecke verwenden. Bitte laden Sie die PDF-Version hier herunter. Unterschied zwischen scanf und gets