Funktionen swprintf () i C ++ bruges til at skrive en formateret bred streng til en bred strengbuffer.
Funktionen swprintf () er defineret i headerfilen.
swprintf () prototype
int swprintf (wchar_t * buffer, størrelse_t størrelse, const wchar_t * format, …);
Funktionen swprintf () skriver den brede streng, som formatet peger på, til bufferen. Det maksimale antal tegn, der kan skrives, er (størrelse-1).
Når tegnene er skrevet, tilføjes et afsluttende null wide-tegn.
Bredstrengformatet kan indeholde formatspecifikatorer, der starter med%, der erstattes af værdierne for variabler, der sendes til swprintf () -funktionen som yderligere argumenter.
swprintf () Parametre
- buffer: Markør til strengbufferen for at skrive resultatet.
- størrelse: Angiv det maksimale antal tegn, der skal skrives til bufferen, som er størrelse 1.
- format: En markør til en null-afsluttet bred streng, der er skrevet til stdout. Den består af brede tegn sammen med valgfri formatspecifikationer, der starter med%. Formatspecifikationerne erstattes af værdierne for de respektive variabler, der følger formatet.
Formatspecifikatoren har følgende dele:- Et førende% tegn
- Flag: Valgfrit et eller flere flag, der ændrer konverteringsadfærden.
- -: Venstre retfærdiggør resultatet inden for feltet. Som standard er det retfærdiggjort.
- +: Tegn på resultatet er knyttet til begyndelsen af værdien, selv for positive resultater.
- Mellemrum: Hvis der ikke er noget tegn, er der knyttet et mellemrum til begyndelsen af resultatet.
- #: En alternativ form for konvertering udføres.
- 0: Det bruges til heltal og flydende nummer. Førende nuller bruges til at padde numrene i stedet for mellemrum.
- Bredde: En valgfri * eller heltalsværdi, der bruges til at angive et minimumsbreddefelt.
- Præcision: Et valgfrit felt bestående af en. efterfulgt af * eller heltal eller intet for at specificere præcisionen.
- Længde: En valgfri længdemodifikator, der angiver størrelsen på argumentet.
- Specifier: En konverteringsformatspecifikator. De tilgængelige formatspecifikatorer er som følger:
Format Specifier Beskrivelse % Udskriver% c Skriver et enkelt tegn s Skriver en tegnstreng d eller i Konverterer et underskrevet heltal til decimalrepræsentation o Konverterer et usigneret heltal til oktal repræsentation X eller x Konverterer et usigneret heltal til hexadecimal repræsentation u Konverterer et usigneret heltal til decimalrepræsentation F eller f Konverterer flydende nummer til decimalrepræsentationen E eller e Konverterer flydende nummer til decimaleksponentnotationen A eller a Konverterer flydende nummer til den hexadecimale eksponent G eller g Konverterer flydende nummer til enten decimal- eller decimaleksponentnotation n Returnerer antallet af tegn, der hidtil er skrevet af dette opkald, til funktionen. Resultatet skrives til den værdi, som argumentet peger på s Skriver en implementeringsdefineret tegnsekvens, der definerer en markør.
Så det generelle format for formatspecifikator er:% (flag) (bredde) (. præcision) (længde) angiver
- …: Andre yderligere argumenter, der specificerer de data, der skal skrives. De forekommer i en sekvens i henhold til formatspecifikatoren.
swprintf () Returværdi
- Efter succes returnerer swprintf () antallet af tegn, der er skrevet undtagen det afsluttende null wide-tegn.
- Hvis der opstod en kodningsfejl, eller hvis antallet af tegn, der skal genereres, var lig med eller større end størrelsen, returneres en negativ værdi.
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 kører programmet, skrives følgende til eksempel.txt:
Nogle hebraiske bogstaver א ב ס ד ת