C ++ sprintf () - Standardna knjižnica C ++

Funkcija sprintf () v jeziku C ++ se uporablja za zapis formatiranega niza v medpomnilnik nizov znakov.

prototip sprintf ()

 int sprintf (medpomnilnik char *, format const char *,…);

sprintf()Funkcija piše niz opozoril, da ga format za omilitev. Format niza lahko vsebuje specifikatorje formata, ki se začnejo z% in jih nadomestijo vrednosti spremenljivk, ki se sprintf()funkciji posredujejo kot dodatni argumenti.

Določen je v datoteki glave.

sprintf () Parametri

  • medpomnilnik: Kazalec na vmesni pomnilnik niza za zapis rezultata.
  • format: Kazalec na ničelno zaključen niz, ki je zapisan v tok datotek. Sestavljen je iz znakov in izbirnih specifikatorjev formata, ki se začnejo z%.

    Specifikatorji oblike se nadomestijo z vrednostmi ustreznih spremenljivk, ki sledijo nizu oblike.

    Specifikator oblike ima naslednje dele:

    • Vodilni znak%
    • Zastave: neobvezna ena ali več zastavic, ki spreminjajo vedenje pretvorbe.
      • -: Levo utemeljite rezultat znotraj polja. Privzeto je upravičeno.
      • +: Znak rezultata je pritrjen na začetek vrednosti, tudi za pozitivne rezultate.
      • Presledek: Če ni nobenega znaka, je presledek pritrjen na začetek rezultata.
      • #: Izvede se druga oblika pretvorbe.
      • 0: Uporablja se za celo število in število s plavajočo vejico. Za zapolnitev številk namesto presledka se uporabljajo vodilne ničle.
    • Širina: neobvezna vrednost * ali celo število, ki se uporablja za določanje polja najmanjše širine.
    • Natančnost: neobvezno polje, sestavljeno iz a. čemur sledi * ali celo število ali nič, kar določa natančnost.
    • Dolžina: neobvezni modifikator dolžine, ki določa velikost argumenta.
    • Specifikator: Specifikator pretvorbenega formata. Razpoložljivi opisniki oblike so naslednji:
      Format Specifier Opis
      % Odtisov%
      c Napiše en sam znak
      s Zapiše niz znakov
      d ali i Pretvori podpisano celo število v decimalno predstavitev
      o Pretvori nepodpisano celo število v osmiško predstavitev
      X ali x Pretvori nešteto celo število v šestnajstiško predstavitev
      u Pretvori nešteto celo število v decimalno predstavitev
      F ali f Pretvori število s plavajočo vejico v decimalno predstavitev
      E ali e Pretvori število s plavajočo vejico v zapis decimalnega eksponenta
      A ali a Pretvori število s plavajočo vejico v šestnajstiški eksponent
      G ali g Pretvori število s plavajočo vejico v decimalni ali decimalni eksponentni zapis
      n Vrne število doslej napisanih znakov s tem klicem funkcije. Rezultat se zapiše v vrednost, na katero opozarja argument
      str Zapiše zaporedje znakov, opredeljeno z izvedbo, ki definira kazalec.

      Tako je splošna oblika specifikatorja oblike: %(flags)(width)(.precision)(length)specifier

  • …: Drugi dodatni argumenti, ki določajo podatke za tiskanje. Pojavljajo se v zaporedju glede na specifikator formata.

sprintf () Vrnjena vrednost

  • Če je sprintf()funkcija uspešna, vrne število znakov, ki bi bili napisani za dovolj velik vmesni pomnilnik, razen zaključnega ničelnega znaka.
  • Ob okvari vrne negativno vrednost.

Primer: Kako deluje funkcija sprintf ()

 #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; )

Ko zaženete program, bo rezultat:

 Živjo, jaz sem Max in star sem 23 let. Število napisanih znakov = 34

Zanimive Članki...