C ++ swprintf () - C ++ standardbibliotek

Funksjonen swprintf () i C ++ brukes til å skrive en formatert bred streng til en bred strengbuffer.

Funksjonen swprintf () er definert i topptekstfilen.

swprintf () prototype

 int swprintf (wchar_t * buffer, størrelse_t størrelse, const wchar_t * format, …);

Swprintf () -funksjonen skriver den brede strengen som pekes på med format til bufferen. Maksimalt antall tegn som kan skrives er (størrelse-1).

Etter at tegnene er skrevet, legges det til et avslutende null bredt tegn.

Bredstrengformatet kan inneholde formatspesifikatorer som begynner med% som erstattes av verdiene til variablene som sendes til swprintf () -funksjonen som tilleggsargumenter.

swprintf () Parametere

  • buffer: peker til strengbufferen for å skrive resultatet.
  • størrelse: Angi maksimalt antall tegn som skal skrives til buffer som er størrelse 1.
  • format: En peker til en null avsluttet bred streng som er skrevet til stdout. Den består av brede tegn sammen med valgfrie formatspesifikatorer som begynner med%. Formatspesifikatorene erstattes av verdiene til respektive variabler som følger formatet.
    Formatspesifikatoren har følgende deler:
    • Et ledende% tegn
    • Flagg: Valgfritt ett eller flere flagg som endrer konverteringsadferden.
      • -: Venstre rettferdiggjør resultatet innenfor feltet. Som standard er det rettferdiggjort.
      • +: Tegn på resultatet er festet til begynnelsen av verdien, selv for positive resultater.
      • Mellomrom: Hvis det ikke er noe tegn, er et mellomrom festet til begynnelsen av resultatet.
      • #: En alternativ form for konvertering utføres.
      • 0: Den brukes til heltall og flytende nummer. Ledende nuller brukes til å putte tallene i stedet for mellomrom.
    • Bredde: En valgfri * eller heltallverdi som brukes til å spesifisere minimumsbreddefelt.
    • Presisjon: Et valgfritt felt som består av en. etterfulgt av * eller heltall eller ingenting for å spesifisere presisjonen.
    • Lengde: En valgfri lengdemodifikator som spesifiserer størrelsen på argumentet.
    • Spesifikator: En konverteringsformatspesifikator. De tilgjengelige formatspesifikasjonene er som følger:
    Formatspesifikatorer
    Format Spesifikator Beskrivelse
    % Skriver ut%
    c Skriver et enkelt tegn
    s Skriver en karakterstreng
    d eller i Konverterer et signert heltall til desimalrepresentasjon
    o Konverterer et usignert heltall til oktal representasjon
    X eller x Konverterer et usignert heltall til heksadesimal representasjon
    u Konverterer et usignert heltall til desimalrepresentasjon
    F eller f Konverterer flytende nummer til desimalrepresentasjonen
    E eller e Konverterer flytende nummer til desimaleksponentnotasjonen
    A eller a Konverterer flytende nummer til den heksadesimale eksponenten
    G eller g Konverterer flytende nummer til enten desimal- eller desimaleksponentnotasjon
    n Returnerer antall tegn som hittil er skrevet av denne samtalen til funksjonen. Resultatet skrives til den verdien argumentet peker på
    s Skriver en implementeringsdefinert tegnsekvens som definerer en peker.

    Så det generelle formatet til formatspesifikatoren er:
     % (flagg) (bredde) (. presisjon) (lengde) spesifisering
  • …: Andre tilleggsargumenter som spesifiserer dataene som skal skrives. De forekommer i en sekvens i henhold til formatet.

swprintf () Returverdi

  • Når det lykkes, returnerer swprintf () -antallet antall tegn som er skrevet eksklusive det avsluttende nullbrede tegnet.
  • Hvis det oppstod en kodingsfeil, eller hvis antallet tegn som skal genereres var lik eller større enn størrelsen, returneres en negativ verdi.

Eksempel: Hvordan fungerer 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 kjører programmet, blir følgende skrevet til example.txt:

 Noen hebraiske bokstaver א ב ס ד ת

Interessante artikler...