C ++ vfprintf () - C ++ standardna knjižnica

Funkcija vfprintf () u C ++ koristi se za pisanje formatiranog niza u tok datoteke.

prototip vfprintf ()

 int vfprintf (FILE * stream, const char * format, va_list vlist);

vfprintf()Funkcija piše string na koji pokazuje formatu na sliku potoka potoka. Format niza može sadržavati specifikatore formata koji počinju s% koji se zamjenjuju vrijednostima varijabli koje se prosljeđuju kao popis vlist.

Definirano je u datoteci zaglavlja.

vfprintf () Parametri

  • stream: tok izlazne datoteke za pisanje rezultata.
  • format: pokazivač na nulu završeni niz koji je zapisan u tok datoteke. Sastoji se od znakova, zajedno s neobaveznim specifikatorima formata koji počinju s%.

    Specifikatori formata zamjenjuju se vrijednostima odgovarajućih varijabli koje slijede niz formata.

    Specifikator formata ima sljedeće dijelove:

    • Vodeći znak%
    • Zastave: Izborna jedna ili više zastavica koje mijenjaju ponašanje pretvorbe.
      • -: Lijevo opravdajte rezultat unutar polja. Po defaultu je ispravno opravdano.
      • +: Znak rezultata pridružen je početku vrijednosti, čak i za pozitivne rezultate.
      • Razmak: Ako nema znaka, razmak se dodaje na početak rezultata.
      • #: Izvodi se alternativni oblik pretvorbe.
      • 0: Koristi se za cijeli broj i broj s pomičnim zarezom. Vodeće se nule koriste za umetanje brojeva umjesto razmaka.
    • Širina: Izborna * ili cijela vrijednost koja se koristi za specificiranje polja minimalne širine.
    • Preciznost: Izborno polje koje se sastoji od a. nakon čega slijedi * ili cijeli broj ili ništa za specificiranje preciznosti.
    • Duljina: neobavezni modifikator duljine koji određuje veličinu argumenta.
    • Specifikator: Specifikator formata pretvorbe. Dostupni specifikatori formata su sljedeći:
      Specifikator formata Opis
      % Ispisi%
      c Napisuje jedan lik
      s Zapisuje niz znakova
      d ili ja Pretvara potpisani cijeli broj u decimalni prikaz
      o Pretvara nepotpisani cijeli broj u osminski prikaz
      X ili x Pretvara nepotpisani cijeli broj u heksadecimalni prikaz
      u Pretvara cijeli broj bez potpisa u decimalni prikaz
      Ž ili ž Pretvara broj s pomičnom zarezom u decimalni prikaz
      E ili e Pretvara broj s pomičnom zarezom u zapis decimalnog eksponenta
      A ili a Pretvara broj s pomičnom zarezom u heksadecimalni eksponent
      G ili g Pretvara broj s pomičnom zarezom u decimalni ili decimalni zapis eksponenta
      n Vraća broj znakova do sada napisanih ovim pozivom funkcije. Rezultat se zapisuje u vrijednost na koju ukazuje argument
      str Napisuje implementacijski definirani slijed znakova koji definira pokazivač.

      Dakle, općeniti format specifikatora formata je: %(flags)(width)(.precision)(length)specifier

  • vlist: Popis argumenata koji sadrže podatke za upis.

vfprintf () Povratna vrijednost

Ako je uspješna, vfprintf()funkcija vraća broj napisanih znakova. U slučaju neuspjeha vraća negativnu vrijednost.

Primjer: Kako funkcionira vfprintf () funkcija

 #include #include void write(FILE* fp, const char *fmt,… ) ( va_list args; va_start(args, fmt); vfprintf(fp, fmt, args); va_end(args); ) int main () ( FILE *fp = fopen("data.csv","w"); char name(5)(50) = ("John","Harry","Kim","Yuan","Laxmi"); int age(5) = (13,41,26,21,32); write(fp, "%s,%s", "name", "age"); for (int i=0; i<5; i++) write(fp, "%s,%d", name(i), age(i)); return 0; )

Kada pokrenete program, u datoteku data.csv zapisat će se sljedeće:

 ime, dob John, 13 Harry, 41 Kim, 26 Yuan, 21 Laxmi, 32

Zanimljivi članci...