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

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

vsprintf () prototips

 int vsprintf (char * buferis, const char * formāts, va_list vlist); 

vsprintf()Funkcija raksta virkni norādīja, ko formātu rakstzīmju virknes buferi. 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 tiek nodotas kā saraksta vlist.

Tas ir definēts galvenes failā.

vsprintf () parametri

  • buferis: Rakstzīmju virknes rādītājs, 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

  • vlist: Argumentu saraksts, kas satur ierakstāmos datus.

vsprintf () Atgriežamā vērtība

Ja tas izdosies, vsprintf()funkcija atgriež rakstīto rakstzīmju skaitu. Neveiksmes gadījumā tā atgriež negatīvu vērtību.

Piemērs: Kā darbojas funkcija vsprintf ()

 #include #include void write(char* buf, const char *fmt,… ) ( va_list args; va_start(args, fmt); vsprintf(buf, fmt, args); va_end(args); ) int main () ( char buffer(100); char fname(20) = "Bjarne"; char lname(20) = "Stroustrup"; char lang(5) = "C++"; write(buffer, "%s was created by %s %s", lang, fname, lname); printf("%s", buffer); return 0; )

Palaidot programmu, izeja būs:

 C ++ izveidoja Bjarne Stroustrup

Interesanti raksti...