C ++ swprintf () - C ++ standartinė biblioteka

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

Įdomios straipsniai...