3 Hauptunterschied zwischen Scanf () vs. Erhält () in C

Ruft()

Gets wird verwendet, um Eingaben von der Tastatur zu empfangen, bis ein Zeilenumbruch oder ein Dateiende (EOF) auftritt. Der Leerraum wird als Teil der Eingabe betrachtet.

gets()  empfängt einen String von der Tastatur. scanf()  hat einige Einschränkungen beim Empfangen einer Zeichenfolge. Es gibt keine Möglichkeit, eine aus mehreren Wörtern bestehende Zeichenfolge in eine einzelne Variable einzugeben. Die Funktion gets()  ruft eine Zeichenfolge von der Tastatur ab und wird beendet, wenn eine  Eingabetaste gedrückt wird. Daher sind Leerzeichen und Tabulatoren als Teil der Eingabezeichenfolge vollkommen akzeptabel. gets()  ruft eine mit einem Zeilenumbruch ( \n ) abgeschlossene Zeichenfolge von der Tastatur ab und ersetzt das  \n  durch ein  \0 .

Scanf ()

Scanf()  ermöglicht es uns, Daten über die Tastatur einzugeben, die auf eine bestimmte Weise formatiert werden.

Die allgemeine Form der  scanf()-  Anweisung lautet wie folgt:

Beachten Sie, dass wir Adressen von Variablen (Adressen werden mit  ‘&’  dem ‘Adresse von’ -Operator erhalten) an die   Funktion scanf() senden . Dies ist notwendig, da die von der Tastatur empfangenen Werte in Variablen abgelegt werden müssen, die diesen Adressen entsprechen. Die über die Tastatur eingegebenen Werte müssen entweder durch  Leerzeichen, Tabulatoren oder Zeilenumbrüche getrennt werden . Schließen Sie diese Escape-Sequenzen nicht in die Formatzeichenfolge ein.

Der Unterschied

Der Hauptunterschied zwischen Scanf () und gets () in C ist:

  1. Scanf () kann mehrere Werte verschiedener Datentypen lesen, während gets () nur Zeichenkettendaten erhält . Gets () kann verwendet werden, um jeweils einen String zu lesen.
  2. Scanf () liest Eingaben, bis es auf Whitespace, Newline oder End Of File (EOF) stößt, während gets () Eingaben liest, bis es auf Newline oder End Of File (EOF) stößt, gets () hört nicht auf, Eingaben zu lesen, wenn es auf Whitespace trifft nimmt Leerzeichen als Zeichenfolge.
  3. Die Funktion scanf() nimmt den Formatstring und die Liste der Adressen von Variablen, zB scanf(“%d”, & Zahl), während die Funktion gets () den Namen der Variablen nimmt, um den empfangenen Wert zu speichern, zB gets(name).

Ähnlichkeiten zwischen scanf () und gets ()

  • Sowohl scanf () als auch gets () sind Funktionen, die von der Programmiersprache C bereitgestellt werden.
  • Sowohl scanf () als auch gets () können verwendet werden, um Eingaben von der Standardeingabe zu erhalten.
  • Sowohl scanf() als auch gets() sollten die Header-Datei stdio.h enthalten, um diese Funktionen nutzen zu können.

Scanf () vs. bekommt () in Tabellenform

VERGLEICHSGRUNDLAGE  Scanf ()Ruft ()
Lesen der EingabeScanf () liest Eingaben, bis sie auf Leerzeichen, Zeilenumbrüche oder Dateiende (EOF) stoßen.Gets () liest Eingaben, bis es auf Newline oder End Of File (EOF) stößt, gets () hört nicht auf, Eingaben zu lesen, wenn es auf Leerzeichen trifft, sondern nimmt Leerzeichen als Zeichenfolge.  
Lesen von Werten und ZeichenScanf () kann mehrere Werte verschiedener Datentypen lesen.Gets () ruft nur Zeichenkettendaten ab. Gets () kann verwendet werden, um jeweils einen String zu lesen.  
Wie es funktioniert Die Funktion Scanf() übernimmt die Formatzeichenfolge und die Liste der Adressen von Variablen, z. B. scanf(“%d”, & Zahl)Die Funktion Gets () nimmt den Namen der Variablen, um den empfangenen Wert zu speichern, zB gets(name).