C ++ swprintf () - C ++ Standardbibliotek

Funktionen swprintf () i C ++ används för att skriva en formaterad bred sträng till en bred strängbuffert.

Funktionen swprintf () definieras i rubrikfilen.

swprintf () prototyp

 int swprintf (wchar_t * buffert, storlek_t storlek, const wchar_t * format, …);

Funktionen swprintf () skriver den breda strängen som pekas på genom format till bufferten. Det maximala antalet tecken som kan skrivas är (storlek 1).

Efter att karaktärerna har skrivits läggs en avslutande null bred karaktär till.

Det breda strängformatet kan innehålla formatspecifikatorer som börjar med% som ersätts av värdena på variabler som skickas till swprintf () -funktionen som ytterligare argument.

swprintf () Parametrar

  • buffert: pekare till strängbuffert för att skriva resultatet.
  • storlek: Ange maximalt antal tecken som ska skrivas till buffert som är storlek-1.
  • format: En pekare till en null-avslutad bred sträng som skrivs till stdout. Den består av breda tecken tillsammans med valfria formatspecifikationer som börjar med%. Formatspecifikationerna ersätts av värdena för respektive variabler som följer formatet.
    Formatspecifikatorn har följande delar:
    • Ett ledande% -tecken
    • Flaggor: Valfri en eller flera flaggor som ändrar konverteringsbeteendet.
      • -: Vänster motivera resultatet inom fältet. Som standard är det rätt motiverat.
      • +: Tecknet på resultatet är fäst vid början av värdet, även för positiva resultat.
      • Mellanslag: Om det inte finns något tecken, fästs ett mellanslag till början av resultatet.
      • #: En alternativ form för konvertering utförs.
      • 0: Det används för heltal och flytande nummer. Ledande nollor används för att lägga in siffrorna istället för mellanslag.
    • Bredd: Ett valfritt * eller heltal som används för att ange minsta breddfält.
    • Precision: Ett valfritt fält som består av en. följt av * eller heltal eller ingenting för att specificera precisionen.
    • Längd: En valfri längdmodifierare som anger argumentets storlek.
    • Specifier: En konverteringsformatspecifikator. De tillgängliga formatspecifikationerna är följande:
    Formatspecifikationer
    Format Specifier Beskrivning
    % Skriver ut%
    c Skriver en enda karaktär
    s Skriver en teckensträng
    d eller i Konverterar ett signerat heltal till decimalrepresentation
    o Konverterar ett osignerat heltal till oktalrepresentation
    X eller x Konverterar ett osignerat heltal till hexadecimal representation
    u Konverterar ett osignerat heltal till decimalrepresentation
    F eller f Konverterar flyttalsnummer till decimalrepresentationen
    E eller e Konverterar flytande nummer till decimal exponentnotation
    A eller a Konverterar flyttal till hexadecimalt exponent
    G eller g Konverterar flytpunktsnummer till antingen decimal- eller decimaleksponentnotation
    n Återställer antalet tecken som hittills har skrivits av detta samtal till funktionen. Resultatet skrivs till det värde som argumentet pekar på
    sid Skriver en implementeringsdefinierad teckenföljd som definierar en pekare.

    Så det allmänna formatet för formatspecifikatorn är:
     % (flaggor) (bredd) (. precision) (längd) specificerare
  • …: Andra ytterligare argument som anger de uppgifter som ska skrivas. De förekommer i en sekvens enligt formatspecifikatorn.

swprintf () Returvärde

  • Efter framgång returnerar funktionen swprintf () antalet skrivna tecken exklusive det avslutande null-breda tecknet.
  • Om ett kodningsfel inträffade eller om antalet tecken som ska genereras är lika med eller större än storleken returneras ett negativt värde.

Exempel: Hur fungerar 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; )

När du kör programmet kommer följande att skrivas till exempel.txt:

 Några hebreiska bokstäver א ב ס ד ת

Intressanta artiklar...