Unterschied zwischen scanf und gets

Hauptunterschied - scanf vs wird erhalten
 

Eine Funktion ist eine Menge von Anweisungen, um eine bestimmte Aufgabe auszuführen. Ohne alle Anweisungen in demselben Programm zu schreiben, kann es in mehrere Funktionen unterteilt werden. Bei der Programmierung kann der Benutzer seine eigenen Funktionen definieren. Es gibt auch Funktionen, die von Programmiersprachen bereitgestellt werden. Die Sprache C bietet eine Reihe von Funktionen, sodass der Programmierer sie direkt verwenden kann, ohne sie von Anfang an zu implementieren. Zwei solcher Funktionen, die von der Programmiersprache C bereitgestellt werden, sind scanf und gets. Dieser Artikel beschreibt den Unterschied zwischen diesen beiden Funktionen. Das Hauptunterschied zwischen scanf und bekommt ist das scanf beendet die Eingabe nach einem Whitespace, Newline oder End Of File (EOF), wohingegen gets einen Whitespace als Teil der Eingabezeichenfolge betrachtet und die Eingabe bei Newline oder EOF beendet.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist Scanf?
3. Was ist bekommt
4. Ähnlichkeiten zwischen scanf und gets
5. Vergleich nebeneinander - scanf vs wird in Tabellenform angezeigt
6. Zusammenfassung

Was ist Scanf??

Die scanf-Funktion kann Eingaben von der Tastatur lesen und entsprechend dem angegebenen Formatbezeichner speichern. Es liest die Eingabe, bis sie auf ein Leerzeichen, einen Zeilenumbruch oder ein EOF stößt. Die Syntax lautet wie folgt.

            scanf ("format string", Adressliste der Variablen);

Verweisen Sie auf das nachstehende Beispiel, um scanf zu verstehen.

Abbildung 01:  scanf mit einer Eingabe

Gemäß dem obigen Programm ist die Eingabe über die Tastatur eine Ganzzahl, daher ist der Formatbezeichner% d. Wenn ein Zeichenwert abgerufen wird, lautet der Formatbezeichner% c. Wenn Sie einen Gleitkommawert erhalten, lautet der Formatbezeichner% f. Der empfangene Eingabewert sollte in der Zahlenvariablen gespeichert werden. Daher wird die Adresse der Variablennummer an die Funktion scanf übergeben. Nun enthält die Zahlenvariable den vom Benutzer über die Tastatur angegebenen Wert. Schließlich können wir die Zahlenvariable drucken, um den Wert zu überprüfen.

Es ist auch möglich, mehr als einen Wert gleichzeitig zu empfangen.

Abbildung 02: scanf mit mehreren Eingängen

Die empfangenen Eingänge werden in den Variablen number1 und number2 gespeichert. Werte können mit printf überprüft werden.

Was ist bekommt?

Die Funktion gets verwendet, um Eingaben von der Tastatur zu empfangen, bis ein Zeilenvorschub oder EOF auftritt. Der Leerraum wird als Teil der Eingabe betrachtet. Die Syntax für die Funktion gets lautet wie folgt.

            wird ("wo die Zeichenfolge gespeichert werden soll");

Wenn beim Empfang der Zeichenfolge ein Fehler auftritt, gibt die Funktion gets einen Nullwert zurück.

Siehe das unten stehende Beispiel,

Abbildung 03: bekommt

Die Eingabe wird von der gets-Funktion empfangen und in dem Variablenwort1 gespeichert. Wenn der Programmierer scanf verwendet, anstatt einen String wie "Hallo Welt" zu erhalten und einzugeben, liest scanf den String aufgrund des Whitespace als zwei Zeichenfolgen. Aber wird es als eine Zeichenfolge "Hallo Welt" lesen.

Was sind die Ähnlichkeiten zwischen scanf und gets?

  • Beide sind Funktionen der Programmiersprache C.
  • Beide sollten die Header-Datei stdio.h enthalten, um diese Funktionen verwenden zu können.
  • Beide können verwendet werden, um Eingaben von der Standardeingabe zu erhalten.

Was ist der Unterschied zwischen scanf und gets?

Scanf vs bekommt

scanf ist eine C-Funktion, um Eingaben von der Standardeingabe zu lesen, bis ein Leerzeichen, ein Zeilenvorschub oder ein EOF auftreten.  gets ist eine C-Funktion, um Eingaben von der Standardeingabe zu lesen, bis ein Zeilenvorschub oder EOF auftritt. Es betrachtet Whitespace als Teil der Eingabe.
 Syntax
Die Funktion scanf übernimmt die Formatzeichenfolge und die Liste der Adressen von Variablen. z.B. scanf ("% d", & number); Die Funktion gets nimmt den Namen der Variablen, um den empfangenen Wert zu speichern. Z.B. erhält (Name);
Flexibilität
scanf kann mehrere Werte verschiedener Datentypen lesen. gets () erhält nur Zeichenkettendaten.

Zusammenfassung - Scanf vs bekommt

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 bei einem Whitespace, einer Zeilenumbruch oder einem Ende der Datei (EOF) eine Eingabe aufnimmt, einen Whitespace als Teil der Eingabezeichenfolge betrachtet und die Eingabe bei einem Newline- oder EOF-Vorgang beendet. 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 wird.

Laden Sie die PDF-Version von scanf vs runter

Sie können die PDF-Version dieses Artikels herunterladen und gemäß dem Zitiervermerk für Offline-Zwecke verwenden. Laden Sie die PDF-Version hier herunter. Unterschied zwischen scanf und gets

Referenz:

1.LearningLad., 'Scanf () - Funktion in Video-Lernprogrammen für C-Programmiersprachen' YouTube, YouTube, 23. April 2013. Hier verfügbar  
2.LearningLad, 'gets () String-Eingabefunktion in C-Programmiersprache-Video-Lernprogramm', YouTube, YouTube, 6. Mai 2013. Hier verfügbar