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

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

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

swprintf () prototípus

 int swprintf (wchar_t * puffer, size_t méret, const wchar_t * formátum,…);

A swprintf () függvény a formátumra mutatott széles karakterláncot a pufferbe írja. Az írható karakterek maximális száma (méret-1).

A karakterek megírása után egy végződő nullaszéles karakter kerül hozzáadásra.

A széles karaktersorozat formátuma tartalmazhat% -al kezdődő formátummeghatározókat, amelyek helyettesítik a swprintf () függvénynek továbbadott változók értékeit további argumentumként.

swprintf () Paraméterek

  • puffer: Mutat a string pufferre az eredmény megírásához.
  • méret: Adja meg a pufferbe írandó karakterek maximális számát, amely méret-1.
  • formátum: Mutató egy null végződésű széles karakterláncra, amelyet az stdout-ba írnak. Széles karakterekből áll, a% -kal kezdődő opcionális formátummeghatározókkal együtt. 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
  • …: További további érvek, amelyek meghatározzák az írandó adatokat. A formátummeghatározó szerint sorrendben fordulnak elő.

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

  • Siker esetén a swprintf () függvény visszaadja a beírt karakterek számát a végződő null széles karakter nélkül.
  • Ha kódolási hiba történt, vagy a létrehozandó karakterek száma egyenlő vagy nagyobb volt, mint a méret, negatív értéket ad vissza.

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

 #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; )

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

 Néhány héber betű א ב ס ד ת

érdekes cikkek...