C ++ scanf - C ++ Standardbibliothek

Die Funktion scanf () in C ++ wird verwendet, um die Daten aus stdin zu lesen.

scanf () Prototyp

 int scanf (const char * Format,…);

Die scanf()Funktion liest die Daten aus stdinund speichert die Werte in den jeweiligen Variablen.

Es ist in der Header-Datei definiert.

scanf () Parameter

  • format: Zeiger auf eine nullterminierte Zeichenfolge, die angibt, wie die Eingabe gelesen werden soll. Es besteht aus Formatbezeichnern, die mit% beginnen.

    Die Formatzeichenfolge besteht aus folgenden Teilen:

    • Non whitespace charactersaußer%, von denen jedes ein identisches Zeichen aus dem Eingabestream verbraucht. Dies kann dazu führen, dass die Funktion fehlschlägt, wenn das nächste Zeichen im Stream nicht gleich ist.
    • Whitespace character: Alle aufeinanderfolgenden Leerzeichen werden als einzelne Leerzeichen behandelt. Ferner werden ' n', ' t' und '' als gleich angesehen.
    • Conversion specification: Es folgt das folgende Format:
      • Anfangszeichen%, das den Anfang angibt
      • Ein optionales *, das als zuweisungsunterdrückendes Zeichen bezeichnet wird. Wenn dieses Zeichen vorhanden ist, weist scanf () das Ergebnis keinem empfangenden Argument zu.
      • Eine optionale positive Ganzzahl, die die maximale Feldbreite angibt. Es gibt die maximale Anzahl von Zeichen an, die scanf () bei der in der aktuellen Konvertierungsspezifikation angegebenen Konvertierung verwenden darf.
      • Ein optionaler Längenmodifikator, der die Größe des empfangenden Arguments angibt.
      • Ein Bezeichner für das Konvertierungsformat.
        Formatbezeichner Beschreibung
        %. Entspricht dem Literal%
        c Entspricht einem einzelnen Zeichen oder mehreren Zeichen. Wenn width definiert ist, entspricht dies genau den Zeichen für die Breite.
        s Entspricht aufeinanderfolgenden Nicht-Leerzeichen. Wenn width definiert ist, entspricht dies genau den Zeichen für die Breite oder bis das erste Leerzeichen gefunden wird.
        (einstellen) Entspricht einer nicht leeren Zeichenfolge aus dem angegebenen Zeichensatz. Wenn am Anfang des Satzes vorhanden ist, werden alle Zeichen, die nicht im Satz enthalten sind, abgeglichen.
        d Entspricht einer Dezimalzahl.
        ich Entspricht einer Ganzzahl.
        Ö Entspricht einer vorzeichenlosen oktalen Ganzzahl.
        X oder x Entspricht einer vorzeichenlosen hexadezimalen Ganzzahl.
        u Entspricht einer vorzeichenlosen Dezimalzahl.
        A oder a, E oder e, F oder f, G oder g Entspricht einer Gleitkommazahl.
        n Gibt die Anzahl der bisher gelesenen Zeichen zurück.
        p Entspricht einer implementierungsdefinierten Zeichenfolge, die einen Zeiger definiert.
    Das allgemeine Format des Formatbezeichners lautet also: %(*)(width)(length)specifier
  • …: Weitere zusätzliche Argumente für den Datenempfang. Sie treten in einer Reihenfolge gemäß dem Formatbezeichner auf.

scanf () Rückgabewert

  • Bei Erfolg gibt die scanf()Funktion die Anzahl der erfolgreich zugewiesenen Empfangsargumente zurück.
  • Wenn ein Übereinstimmungsfehler auftritt, bevor das erste empfangende Argument zugewiesen wurde, wird Null zurückgegeben.
  • Wenn ein Eingabefehler auftritt, bevor das erste empfangende Argument zugewiesen wurde, wird EOF zurückgegeben.

Beispiel: Funktionsweise der Funktion scanf ()

 #include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )

Wenn Sie das Programm ausführen, ist eine mögliche Ausgabe:

 Hallo Tim, du bist 31 Jahre alt

Interessante Beiträge...