C ++ vsprintf () - Biblioteca standard C ++

Funcția vsprintf () din C ++ este utilizată pentru a scrie un șir formatat într-un buffer de șiruri.

prototip vsprintf ()

 int vsprintf (char * buffer, const char * format, va_list vlist); 

vsprintf()Funcția scrie șirul indicat de format într - un buffer șir de caractere. Formatul șirului poate conține specificatori de format începând cu%, care sunt înlocuiți cu valorile variabilelor care sunt trecute ca listă vlist.

Este definit în fișierul antet.

vsprintf () Parametri

  • buffer: Pointer către un șir de caractere pentru a scrie rezultatul.
  • format: Pointer către un șir terminat nul care este scris în fluxul de fișiere. Se compune din caractere împreună cu specificatori de format opționali începând cu%.

    Specificatorii de format sunt înlocuiți cu valorile variabilelor respective care urmează șirului de format.

    Specificatorul de format are următoarele părți:

    • Un semn de conducere%
    • Semnalizări: opțional unul sau mai multe semnalizatoare care modifică comportamentul de conversie.
      • -: Stânga justifică rezultatul în câmp. În mod implicit, este justificat.
      • +: Semnul rezultatului este atașat la începutul valorii, chiar și pentru rezultate pozitive.
      • Spațiu: dacă nu există niciun semn, un spațiu este atașat la începutul rezultatului.
      • #: Se efectuează o formă alternativă de conversie.
      • 0: Se folosește pentru numărul întreg și numărul cu virgulă mobilă. Zero-urile principale sunt utilizate pentru a tampona numerele în loc de spațiu.
    • Lățime: o valoare opțională * sau întreagă utilizată pentru a specifica câmpul de lățime minimă.
    • Precizie: un câmp opțional format dintr-un. urmat de * sau întreg sau nimic pentru a specifica precizia.
    • Lungime: un modificator opțional de lungime care specifică dimensiunea argumentului.
    • Specificator: un specificator de format de conversie. Specificatorii de format disponibili sunt după cum urmează:
      Specificator de format Descriere
      % % Tipăriri
      c Scrie un singur personaj
      s Scrie un șir de caractere
      d sau i Convertește un număr întreg semnat în reprezentare zecimală
      o Convertește un număr întreg nesemnat în reprezentare octală
      X sau x Convertește un număr întreg nesemnat în reprezentare hexazecimală
      tu Convertește un număr întreg nesemnat în reprezentare zecimală
      F sau f Convertește numărul în virgulă mobilă în reprezentarea zecimală
      E sau e Convertește numărul în virgulă mobilă în notația exponentului zecimal
      A sau a Convertește numărul în virgulă mobilă în exponentul hexazecimal
      G sau g Convertește numărul în virgulă mobilă fie în notație zecimală, fie în exponentă zecimală
      n Returnează numărul de caractere scrise până acum de acest apel către funcție. Rezultatul este scris la valoarea indicată de argument
      p Scrie o secvență de caractere definită de implementare care definește un pointer.

      Deci, formatul general al specificatorului de format este: %(flags)(width)(.precision)(length)specifier

  • vlist: o listă de argumente care conțin datele de scris.

vsprintf () Valoare returnată

Dacă are succes, vsprintf()funcția returnează numărul de caractere scrise. La eșec, returnează o valoare negativă.

Exemplu: Cum funcționează funcția 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; )

Când rulați programul, ieșirea va fi:

 C ++ a fost creat de Bjarne Stroustrup

Articole interesante...