C ++ sprintf () - C ++ standarta bibliotēka

Funkcija sprintf () C ++ tiek izmantota, lai rakstītu formatētu virkni rakstzīmju virknes buferī.

sprintf () prototips

 int sprintf (char * buferis, const char * formāts,…);

sprintf()Funkcija raksta virkni norādīja, ko formātu bufera. Virknes formātā var būt formāta specifikatori, kas sākas ar% un tiek aizstāti ar mainīgo vērtībām, kuras sprintf()funkcijai tiek nodotas kā papildu argumenti.

Tas ir definēts galvenes failā.

sprintf () parametri

  • buferis: rādītājs virknes buferim, lai uzrakstītu rezultātu.
  • formāts: rādītājs nulles izbeigtai virknei, kas tiek ierakstīta failu straumē. Tas sastāv no rakstzīmēm un izvēles formātu specifikatoriem, kas sākas ar%.

    Formātu specifikatori tiek aizstāti ar attiecīgo mainīgo vērtībām, kas seko formāta virknei.

    Formāta norādītājam ir šādas daļas:

    • Vadošā% zīme
    • Karodziņi: pēc izvēles viens vai vairāki karodziņi, kas maina reklāmguvuma darbību.
      • -: kreisais pamato rezultātu laukā. Pēc noklusējuma tas ir pareizi pamatots.
      • +: Rezultāta zīme ir pievienota vērtības sākumam pat pozitīvu rezultātu iegūšanai.
      • Telpa: ja nav zīmes, rezultāta sākumam tiek pievienota atstarpe.
      • #: Tiek veikta alternatīva konversijas forma.
      • 0: to lieto vesels skaitlis un peldošā komata skaitlis. Ciparu ierakstīšanai, nevis atstarpei, tiek izmantotas nulles.
    • Platums: izvēles * vai vesela skaitļa vērtība, ko izmanto, lai norādītu minimālā platuma lauku.
    • Precizitāte: izvēles lauks, kas sastāv no: seko * vai vesels skaitlis vai nekas, lai precizētu precizitāti.
    • Garums: izvēles garuma modifikators, kas norāda argumenta lielumu.
    • Specifikators: reklāmguvumu formāta specifikators. Pieejamie formātu specifikatori ir šādi:
      Formāta specifikators Apraksts
      % Izdrukas%
      c Raksta vienu rakstzīmi
      s Raksta rakstzīmju virkni
      d vai i Pārvērš parakstītu veselu skaitli decimāldaļā
      o Pārvērš neparakstītu veselu skaitli oktālā attēlojumā
      X vai x Pārvērš neparakstītu veselu skaitli heksadecimālā attēlojumā
      u Pārvērš neparakstītu veselu skaitli decimāldaļā
      F vai f Pārvērš peldošā komata skaitli decimāldaļā
      E vai e Pārvērš peldošā komata skaitli decimāldaļskaitļa eksponenta apzīmējumā
      A vai a Pārvērš peldošā komata skaitli par heksadecimālo eksponentu
      G vai g Pārvērš peldošā komata skaitli decimāldaļās vai decimāldaļās eksponentu apzīmējumos
      n Atgriež funkcijai līdz šim šim izsaukumam rakstīto rakstzīmju skaitu. Rezultāts tiek ierakstīts vērtībā, uz kuru norāda arguments
      lpp Raksta ieviešanā definētu rakstzīmju secību, kas nosaka rādītāju.

      Tātad formāta specifikatora vispārējais formāts ir: %(flags)(width)(.precision)(length)specifier

  • …: Citi papildu argumenti, kas norāda drukājamos datus. Tie notiek secībā pēc formāta norādītāja.

sprintf () Atgriešanās vērtība

  • Ja tas ir veiksmīgs, sprintf()funkcija atgriež tādu rakstzīmju skaitu, kas būtu rakstīts pietiekami lielam buferim, izņemot beigu nulles rakstzīmi.
  • Neveiksmes gadījumā tā atgriež negatīvu vērtību.

Piemērs: Kā darbojas sprintf () funkcija

 #include #include using namespace std; int main() ( char buffer(100); int retVal; char name() = "Max"; int age = 23; retVal = sprintf(buffer, "Hi, I am %s and I am %d years old", name, age); cout << buffer << endl; cout << "Number of characters written = " << retVal << endl; return 0; )

Palaidot programmu, izeja būs:

 Sveiki, es esmu Makss un man ir 23 gadi Rakstīto rakstzīmju skaits = 34

Interesanti raksti...