C ++ sprintf () - C ++ Standardbibliothek

Die Funktion sprintf () in C ++ wird verwendet, um eine formatierte Zeichenfolge in den Zeichenfolgenpuffer zu schreiben.

sprintf () Prototyp

 int sprintf (char * buffer, const char * format,…);

Die sprintf()Funktion schreibt die Zeichenfolge, auf die das Format zeigt, in den Puffer. Das Zeichenfolgenformat kann Formatspezifizierer enthalten, die mit% beginnen und durch die Werte von Variablen ersetzt werden, die sprintf()als zusätzliche Argumente an die Funktion übergeben werden.

Es ist in der Header-Datei definiert.

sprintf () Parameter

  • buffer: Zeiger auf den String-Puffer, um das Ergebnis zu schreiben.
  • Format: Zeiger auf eine nullterminierte Zeichenfolge, die in den Dateistream geschrieben wird. Es besteht aus Zeichen und optionalen Formatangaben, die mit% beginnen.

    Die Formatbezeichner werden durch die Werte der jeweiligen Variablen ersetzt, die auf die Formatzeichenfolge folgen.

    Der Formatbezeichner besteht aus folgenden Teilen:

    • Ein führendes% -Zeichen
    • Flags: Optional ein oder mehrere Flags, die das Konvertierungsverhalten ändern.
      • -: Links begründen Sie das Ergebnis innerhalb des Feldes. Standardmäßig ist es richtig gerechtfertigt.
      • +: Das Vorzeichen des Ergebnisses wird auch bei positiven Ergebnissen an den Anfang des Wertes angehängt.
      • Leerzeichen: Wenn kein Zeichen vorhanden ist, wird am Anfang des Ergebnisses ein Leerzeichen eingefügt.
      • #: Eine alternative Form der Konvertierung wird durchgeführt.
      • 0: Wird für Ganzzahl und Gleitkommazahl verwendet. Führende Nullen werden verwendet, um die Zahlen anstelle von Leerzeichen aufzufüllen.
    • Breite: Ein optionaler * oder ganzzahliger Wert, mit dem das Feld für die Mindestbreite angegeben wird.
    • Präzision: Ein optionales Feld bestehend aus a. gefolgt von * oder Ganzzahl oder nichts, um die Genauigkeit anzugeben.
    • Länge: Ein optionaler Längenmodifikator, der die Größe des Arguments angibt.
    • Bezeichner: Ein Bezeichner für das Konvertierungsformat. Die verfügbaren Formatspezifizierer sind wie folgt:
      Formatbezeichner Beschreibung
      %. Druckt%
      c Schreibt ein einzelnes Zeichen
      s Schreibt eine Zeichenkette
      d oder i Konvertiert eine vorzeichenbehaftete Ganzzahl in eine Dezimaldarstellung
      Ö Konvertiert eine vorzeichenlose Ganzzahl in eine oktale Darstellung
      X oder x Konvertiert eine vorzeichenlose Ganzzahl in eine hexadezimale Darstellung
      u Konvertiert eine vorzeichenlose Ganzzahl in eine Dezimaldarstellung
      F oder f Konvertiert die Gleitkommazahl in die Dezimaldarstellung
      E oder e Konvertiert die Gleitkommazahl in die Dezimal-Exponenten-Notation
      A oder a Konvertiert die Gleitkommazahl in den hexadezimalen Exponenten
      G oder g Konvertiert die Gleitkommazahl entweder in eine dezimale oder eine dezimale Exponentennotation
      n Gibt die Anzahl der Zeichen zurück, die bisher von diesem Aufruf an die Funktion geschrieben wurden. Das Ergebnis wird auf den Wert geschrieben, auf den das Argument zeigt
      p Schreibt eine implementierungsdefinierte Zeichenfolge, die einen Zeiger definiert.

      Das allgemeine Format des Formatbezeichners lautet also: %(flags)(width)(.precision)(length)specifier

  • …: Andere zusätzliche Argumente, die die zu druckenden Daten angeben. Sie treten in einer Reihenfolge gemäß dem Formatbezeichner auf.

sprintf () Rückgabewert

  • Bei Erfolg gibt die sprintf()Funktion die Anzahl der Zeichen zurück, die für einen ausreichend großen Puffer ohne das abschließende Nullzeichen geschrieben worden wären.
  • Bei einem Fehler wird ein negativer Wert zurückgegeben.

Beispiel: Funktionsweise der Funktion sprintf ()

 #include #include using namespace std; int main() ( char buffer(100); int retVal; char name() = "Max"; int age = 23; retVal = sprintf(buffer, "Hi, I am %s and I am %d years old", name, age); cout << buffer << endl; cout << "Number of characters written = " << retVal << endl; return 0; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Hallo, ich bin Max und ich bin 23 Jahre alt. Anzahl der geschriebenen Zeichen = 34

Interessante Beiträge...