C ++ vswprintf () - C ++ szabványos könyvtár

A vswprintf () függvény a C ++ - ban egy formázott széles karakterlánc írására szolgál egy széles karakterlánc-pufferbe.

Az vswprintf () függvény a fejlécfájlban van meghatározva.

vswprintf () prototípus

 int vswprintf (wchar_t * puffer, size_t buf_size, const wchar_t * formátum, va_list vlist);

A vswprintf () függvény a széles karakterláncot formátum szerint rámutatja a széles karakterlánc-pufferre. A (buf_size-1)pufferbe maximum széles karaktereket írnak, amelyet egy null széles karakter követ.

A széles karaktersorozat formátuma tartalmazhat% -al kezdődő formátummeghatározókat, amelyek helyébe a listavlistaként átadott változók értékei lépnek.

vswprintf () Paraméterek

  • puffer: Mutató egy széles karakterlánc-pufferhez az eredmény megírásához.
  • buf_size: Az írható széles karakterek maximális száma, beleértve a befejező null széles karaktert is.
  • formátum: Egy nullával végződött széles karaktersorozat mutatója, amelyet pufferbe írnak. Karakterekből áll, és opcionális formátum-specifikátorokkal kezdődik, amelyek% -kal kezdődnek. A formátum-specifikátorokat a megfelelő változók formátumot követő értéke váltja fel.
    A formátummeghatározó a következő részekkel rendelkezik:
    • Vezető% jel
    • Jelölések: Opcionálisan egy vagy több jelölés, amely módosítja a konverzió viselkedését.
      • -: Bal igazolja az eredményt a mezőn belül. Alapértelmezés szerint helyesen indokolt.
      • +: Az eredmény jele az érték elejéhez van kötve, még pozitív eredmények esetén is.
      • Szóköz: Ha nincs előjel, akkor az eredmény elejéhez szóköz tartozik.
      • #: A konverzió alternatív formáját hajtják végre.
      • 0: Egész számra és lebegőpontos számra használják. A nullák a szóköz helyett a számok kitöltésére szolgálnak.
    • Szélesség: Opcionális * vagy egész érték, amelyet a minimális szélesség mező megadásához használnak.
    • Pontosság: Választható mező, amely a. * vagy egész szám, vagy semmi a pontosság megadásához.
    • Hossz: Opcionális hosszmódosító, amely megadja az argumentum méretét.
    • Specifier: Konverziós formátum-specifikáló. A rendelkezésre álló formátum-meghatározók a következők:
    Formátum specifikátorok
    Formátummeghatározó Leírás
    % Nyomat%
    c Egyetlen karaktert ír
    s Karakterláncot ír
    d vagy i Az aláírt egész számot decimális ábrázolássá alakítja
    o Az előjel nélküli egész számot oktális ábrázolássá alakítja
    X vagy x Aláíratlan egész számot hexadecimális ábrázolássá alakítja
    u Az aláíratlan egész számot decimális ábrázolássá alakítja
    F vagy f A lebegőpontos számot tizedesre konvertálja
    E vagy e A lebegőpontos számot decimális exponens jelöléssé alakítja
    A vagy a A lebegőpontos számot hexadecimális kitevővé konvertálja
    G vagy g A lebegőpontos számot decimális vagy decimális exponens jelöléssé alakítja
    n Visszaadja a függvénynek a hívás által eddig írt karakterek számát. Az eredményt arra az értékre írják, amelyre az argumentum rámutat
    o Ír egy megvalósítás által definiált karaktersorozatot, amely meghatároz egy mutatót.

    Tehát a formátummeghatározó általános formátuma:
     % (zászlók) (szélesség) (. pontosság) (hossz) specifikátor
  • vlist: Az írandó adatokat tartalmazó argumentumok listája.

vswprintf () Visszatérési érték

  • Sikeres esetben az vswprintf () függvény visszaadja a beírt széles karakterek számát, kivéve a befejező null széles karaktert.
  • Negatív értéket adunk vissza, ha bármilyen kódolási hiba lép fel, vagy ha a létrehozandó karakterek száma egyenlő vagy nagyobb, mint a buf_size.

Példa: Hogyan működik az vswprintf () függvény?

 #include #include #include void write(wchar_t* buffer, size_t buf_size, const wchar_t *fmt,… ) ( va_list args; va_start(args, fmt); vswprintf(buffer, buf_size, fmt, args); va_end(args); ) int main () ( wchar_t str() = L"u0684 u06b1 u06aa u06a3 u0684"; wchar_t buffer(50); setlocale(LC_ALL, "en_US.UTF-8"); write(buffer, 50, L"Arabic Letters: %ls", str); wprintf(L"%ls", buffer); return 0; )

A program futtatásakor a következőket írjuk az example.txt fájlba:

 Arab betűk: ڄ ڱ ڪ ڣ ڄ

érdekes cikkek...