C ++ swprintf () - C ++ Standardbibliothek

Die Funktion swprintf () in C ++ wird verwendet, um eine formatierte breite Zeichenfolge in einen breiten Zeichenfolgenpuffer zu schreiben.

Die Funktion swprintf () ist in der Header-Datei definiert.

swprintf () Prototyp

 int swprintf (wchar_t * Puffer, size_t Größe, const wchar_t * Format,…);

Die Funktion swprintf () schreibt die breite Zeichenfolge, auf die das Format zeigt, in den Puffer. Die maximale Anzahl von Zeichen, die geschrieben werden können, beträgt (Größe 1).

Nachdem die Zeichen geschrieben wurden, wird ein abschließendes nullweites Zeichen hinzugefügt.

Das breite Zeichenfolgenformat kann Formatspezifizierer enthalten, die mit% beginnen und durch die Werte von Variablen ersetzt werden, die als zusätzliche Argumente an die Funktion swprintf () übergeben werden.

swprintf () Parameter

  • buffer: Zeiger auf den String-Puffer, um das Ergebnis zu schreiben.
  • Größe: Geben Sie die maximale Anzahl von Zeichen an, die in den Puffer geschrieben werden sollen (Größe 1).
  • Format: Ein Zeiger auf eine nullterminierte breite Zeichenfolge, die in stdout geschrieben wird. Es besteht aus breiten Zeichen und optionalen Formatangaben, die mit% beginnen. Die Formatbezeichner werden durch die Werte der jeweiligen Variablen ersetzt, die dem Format 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
    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:
     Bezeichner% (Flags) (Breite) (. Genauigkeit) (Länge)
  • …: Andere zusätzliche Argumente, die die zu schreibenden Daten angeben. Sie treten in einer Reihenfolge gemäß dem Formatbezeichner auf.

swprintf () Rückgabewert

  • Bei Erfolg gibt die Funktion swprintf () die Anzahl der geschriebenen Zeichen ohne das abschließende null breite Zeichen zurück.
  • Wenn ein Codierungsfehler aufgetreten ist oder wenn die Anzahl der zu generierenden Zeichen gleich oder größer als die Größe war, wird ein negativer Wert zurückgegeben.

Beispiel: Wie funktioniert die Funktion swprintf ()?

 #include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )

Wenn Sie das Programm ausführen, wird Folgendes in example.txt geschrieben:

 Einige hebräische Buchstaben א ב ס ד ת

Interessante Beiträge...