Funkcija swprintf () u jeziku C ++ koristi se za upisivanje formatiranog širokog niza u međuspremnik širokog niza.
Funkcija swprintf () definirana je u zaglavnoj datoteci.
prototip swprintf ()
int swprintf (wchar_t * međuspremnik, size_t size, const wchar_t * format, …);
Funkcija swprintf () u međuspremnik upisuje široki niz na koji ukazuje format. Maksimalan broj znakova koji se mogu napisati je (veličina-1).
Nakon pisanja znakova dodaje se završavajući null širok znak.
Široki format niza može sadržavati specifikatore formata koji počinju s% koji se zamjenjuju vrijednostima varijabli koje se prosljeđuju funkciji swprintf () kao dodatni argumenti.
swprintf () Parametri
- međuspremnik: pokazivač na međuspremnik niza za pisanje rezultata.
- veličina: Navedite maksimalni broj znakova koji će se upisati u međuspremnik, a to je veličina-1.
- format: pokazivač na nulto završeni široki niz koji se zapisuje u stdout. Sastoji se od širokih znakova, zajedno s neobaveznim specifikatorima formata koji počinju s%. Specifikatori formata zamjenjuju se vrijednostima odgovarajućih varijabli koje slijede nakon formata.
Specifikator formata ima sljedeće dijelove:- Vodeći znak%
- Zastave: Izborna jedna ili više zastavica koje mijenjaju ponašanje pretvorbe.
- -: Lijevo opravdajte rezultat unutar polja. Po defaultu je ispravno opravdano.
- +: Znak rezultata pridružen je početku vrijednosti, čak i za pozitivne rezultate.
- Razmak: Ako nema znaka, razmak se dodaje na početak rezultata.
- #: Izvodi se alternativni oblik pretvorbe.
- 0: Koristi se za cijeli broj i broj s pomičnim zarezom. Vodeće se nule koriste za umetanje brojeva umjesto razmaka.
- Širina: Izborna * ili cijela vrijednost koja se koristi za specificiranje polja minimalne širine.
- Preciznost: Izborno polje koje se sastoji od a. nakon čega slijedi * ili cijeli broj ili ništa za specificiranje preciznosti.
- Duljina: neobavezni modifikator duljine koji određuje veličinu argumenta.
- Specifikator: Specifikator formata pretvorbe. Dostupni specifikatori formata su sljedeći:
Specifikator formata Opis % Ispisi% c Napisuje jedan lik s Zapisuje niz znakova d ili ja Pretvara potpisani cijeli broj u decimalni prikaz o Pretvara nepotpisani cijeli broj u osminski prikaz X ili x Pretvara nepotpisani cijeli broj u heksadecimalni prikaz u Pretvara cijeli broj bez potpisa u decimalni prikaz Ž ili ž Pretvara broj s pomičnom zarezom u decimalni prikaz E ili e Pretvara broj s pomičnom zarezom u zapis decimalnog eksponenta A ili a Pretvara broj s pomičnom zarezom u heksadecimalni eksponent G ili g Pretvara broj s pomičnom zarezom u decimalni ili decimalni zapis eksponenta n Vraća broj znakova do sada napisanih ovim pozivom funkcije. Rezultat se zapisuje u vrijednost na koju ukazuje argument str Napisuje implementacijski definirani slijed znakova koji definira pokazivač.
Dakle, općeniti format specifikatora formata je:Specifikator% (zastavice) (širina) (. preciznost) (duljina)
- …: Ostali dodatni argumenti koji specificiraju podatke koji se zapisuju. Javljaju se u slijedu prema specifikatoru formata.
swprintf () Povratna vrijednost
- Nakon uspjeha, funkcija swprintf () vraća broj napisanih znakova, isključujući krajnji null širok znak.
- Ako se dogodila pogreška kodiranja ili je broj generiranih znakova jednak ili veći od veličine, vraća se negativna vrijednost.
Primjer: Kako funkcionira funkcija 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; )
Kada pokrenete program, u example.txt će se zapisati sljedeće:
Neka hebrejska slova א ב ס ד ת