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á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ű א ב ס ד ת