Funcția swprintf () în C ++ este utilizată pentru a scrie un șir larg formatat într-un buffer de șir larg.
Funcția swprintf () este definită în fișierul antet.
swprintf () prototip
int swprintf (wchar_t * buffer, size_t size, const wchar_t * format, …);
Funcția swprintf () scrie șirul larg indicat în funcție de format în buffer. Numărul maxim de caractere care poate fi scris este (dimensiunea-1).
După ce personajele sunt scrise, se adaugă un caracter care se termină în lat.
Formatul șirului larg poate conține specificatori de format începând cu%, care sunt înlocuiți cu valorile variabilelor care sunt trecute funcției swprintf () ca argumente suplimentare.
swprintf () Parametri
- buffer: Pointer către bufferul șir pentru a scrie rezultatul.
- size: Specificați numărul maxim de caractere care trebuie scrise în buffer, care este size-1.
- format: Un pointer către un șir larg terminat nul, care este scris în stdout. Se compune din caractere largi împreună cu specificatori de format opționali începând cu%. Specificatorii de format sunt înlocuiți cu valorile variabilelor respective care urmează formatului.
Specificatorul de format are următoarele părți:- Un semn de conducere%
- Semnalizări: opțional unul sau mai multe semnalizatoare care modifică comportamentul de conversie.
- -: Stânga justifică rezultatul în câmp. În mod implicit, este justificat.
- +: Semnul rezultatului este atașat la începutul valorii, chiar și pentru rezultate pozitive.
- Spațiu: dacă nu există niciun semn, un spațiu este atașat la începutul rezultatului.
- #: Se efectuează o formă alternativă de conversie.
- 0: Se folosește pentru numărul întreg și numărul cu virgulă mobilă. Zero-urile principale sunt utilizate pentru a tampona numerele în loc de spațiu.
- Lățime: o valoare opțională * sau întreagă utilizată pentru a specifica câmpul de lățime minimă.
- Precizie: un câmp opțional format dintr-un. urmat de * sau întreg sau nimic pentru a specifica precizia.
- Lungime: un modificator opțional de lungime care specifică dimensiunea argumentului.
- Specificator: un specificator de format de conversie. Specificatorii de format disponibili sunt după cum urmează:
Specificator de format Descriere % % Tipăriri c Scrie un singur personaj s Scrie un șir de caractere d sau i Convertește un număr întreg semnat în reprezentare zecimală o Convertește un număr întreg nesemnat în reprezentare octală X sau x Convertește un număr întreg nesemnat în reprezentare hexazecimală tu Convertește un număr întreg nesemnat în reprezentare zecimală F sau f Convertește numărul în virgulă mobilă în reprezentarea zecimală E sau e Convertește numărul în virgulă mobilă în notația exponentului zecimal A sau a Convertește numărul în virgulă mobilă în exponentul hexazecimal G sau g Convertește numărul în virgulă mobilă fie în notație zecimală, fie în exponentă zecimală n Returnează numărul de caractere scrise până acum de acest apel către funcție. Rezultatul este scris la valoarea indicată de argument p Scrie o secvență de caractere definită de implementare care definește un pointer.
Deci, formatul general al specificatorului de format este:% (steaguri) (lățime) (. precizie) (lungime) specificator
- …: Alte argumente suplimentare care specifică datele care trebuie scrise. Acestea apar într-o secvență conform specificatorului de format.
swprintf () Valoare returnată
- La succes, funcția swprintf () returnează numărul de caractere scrise, excluzând caracterul nul care se termină.
- Dacă a apărut o eroare de codificare sau dacă numărul de caractere care trebuie generat a fost egal sau mai mare decât dimensiunea, se returnează o valoare negativă.
Exemplu: Cum funcționează funcția 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; )
Când rulați programul, următoarele vor fi scrise în example.txt:
Unele litere ebraice א ב ב ד ת