C ++ funkcija swprintf () naudojama suformatuotai plačiai eilutei rašyti į platų eilutės buferį.
Funkcija swprintf () yra apibrėžta antraštės faile.
swprintf () prototipas
int swprintf (wchar_t * buferis, size_t dydis, const wchar_t * formatas,…);
Funkcija „swprintf ()“ rašo į buferį plačią eilutę, į kurią nukreipia formatas. Maksimalus rašomų simbolių skaičius yra (dydis-1).
Parašius simbolius, pridedamas baigiamasis nulio pločio simbolis.
Plačiame eilutės formate gali būti formato specifikatoriai, prasidedantys%, kurie yra pakeisti kintamųjų reikšmėmis, kurios perduodamos funkcijai swprintf () kaip papildomi argumentai.
swprintf () parametrai
- buferis: žymeklis į styginių buferį, kad būtų galima parašyti rezultatą.
- dydis: nurodykite maksimalų simbolių skaičių, kurį reikia įrašyti į buferį, kuris yra dydis-1.
- formatas: nerodomos plačios eilutės, kuri parašyta „stdout“, žymeklis. Ją sudaro platūs simboliai ir neprivalomi formato specifikatoriai, prasidedantys%. Formato specifikatoriai pakeičiami atitinkamų kintamųjų reikšmėmis, atitinkančiomis formatą.
Formato specifikatoriuje yra šios dalys:- Pirmaujantis% ženklas
- Žymos: pasirinktinai viena ar kelios žymos, modifikuojančios konversijos elgseną.
- -: kairė pateisina rezultatą lauke. Pagal nutylėjimą tai yra teisinga.
- +: Rezultato ženklas pridedamas prie vertės pradžios, net jei teigiami rezultatai.
- Erdvė: jei nėra ženklo, rezultato pradžioje pridedama tarpas.
- #: Atliekama alternatyvi konversijos forma.
- 0: Jis naudojamas sveikam skaičiui ir slankiojo kablelio skaičiui. Skaičių užpildymui vietoj tarpo naudojami priekiniai nuliai.
- Plotis: neprivaloma * arba sveiko skaičiaus vertė, naudojama nurodyti minimalaus pločio lauką.
- Tikslumas: neprivalomas laukas, kurį sudaro a. po kurio * arba sveikas skaičius arba nieko, kad būtų galima nurodyti tikslumą.
- Ilgis: pasirinktinis ilgio modifikatorius, nurodantis argumento dydį.
- Specifikatorius: konversijos formato specifikatorius. Galimi formatų parametrai yra šie:
Formato specifikatorius apibūdinimas % Spausdina% c Rašo vieną veikėją s Rašo simbolių eilutę d arba aš Konvertuoja pasirašytą sveikąjį skaičių į dešimtainį vaizdą o Konvertuoja nepasirašytą sveikąjį skaičių į aštuonetinį vaizdą X arba x Konvertuoja nepasirašytą sveikąjį skaičių į šešioliktainį vaizdą u Konvertuoja nepasirašytą sveikąjį skaičių į dešimtainį vaizdą F arba f Konvertuoja slankiojo kablelio skaičių dešimtainiu skaičiumi E arba e Konvertuoja slankiojo kablelio skaičių dešimtainio laipsnio rodikliu A arba a Konvertuoja slankiojo kablelio skaičių į šešioliktainį rodiklį G arba g Konvertuoja slankiojo kablelio skaičių dešimtainiu arba dešimtainiu laipsnių rodikliu n Grąžina iki šiol šiuo skambučiu parašytų simbolių skaičių funkcijai. Rezultatas įrašomas į argumento nurodytą vertę p Rašo įgyvendinimo apibrėžtą simbolių seką, apibrėžiančią žymeklį.
Taigi bendras formato specifikatoriaus formatas yra:% (vėliavos) (plotis) (. tikslumas) (ilgis) specifikatorius
- …: Kiti papildomi argumentai, nurodantys, kuriuos duomenis reikia rašyti. Jie vyksta seka pagal formato specifikatorių.
swprintf () Grąžinimo vertė
- Pasisekus, funkcija swprintf () grąžina parašytų simbolių skaičių, išskyrus baigiamąjį nulinį plačiąjį simbolį.
- Jei įvyko kodavimo klaida arba sugeneruotų simbolių skaičius buvo lygus arba didesnis nei dydis, pateikiama neigiama vertė.
Pavyzdys: Kaip veikia 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; )
Paleidus programą, example.txt bus parašyta:
Kai kurios hebrajų raidės א ב ס ד ת