C ++ vfprintf () - C ++ Standardbibliotek

Funksjonen vfprintf () i C ++ brukes til å skrive en formatert streng til en filstrøm.

vfprintf () prototype

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

Den vfprintf()funksjonen skriver strengen peker til formatet til filen stream stream. Strengformatet kan inneholde formatspesifikatorer som begynner med% som erstattes av verdiene til variablene som sendes som en liste-liste.

Det er definert i topptekstfilen.

vfprintf () Parametere

  • stream: En utdatafilstrøm for å skrive resultatet.
  • format: peker til en null avsluttet streng som skrives til filstrømmen. Den består av tegn sammen med valgfrie formatspesifikatorer som begynner med%.

    Formatspesifikatorene erstattes av verdiene til respektive variabler som følger formatstrengen.

    Formatspesifikatoren har følgende deler:

    • Et ledende% tegn
    • Flagg: Valgfritt ett eller flere flagg som endrer konverteringsadferden.
      • -: Venstre rettferdiggjør resultatet innenfor feltet. Som standard er det rettferdiggjort.
      • +: Tegn på resultatet er festet til begynnelsen av verdien, selv for positive resultater.
      • Mellomrom: Hvis det ikke er noe tegn, er et mellomrom festet til begynnelsen av resultatet.
      • #: En alternativ form for konvertering utføres.
      • 0: Den brukes til heltall og flytende nummer. Ledende nuller brukes til å putte tallene i stedet for mellomrom.
    • Bredde: En valgfri * eller heltallverdi som brukes til å spesifisere minimumsbreddefelt.
    • Presisjon: Et valgfritt felt som består av en. etterfulgt av * eller heltall eller ingenting for å spesifisere presisjonen.
    • Lengde: En valgfri lengdemodifikator som spesifiserer størrelsen på argumentet.
    • Spesifikator: En konverteringsformatspesifikator. De tilgjengelige formatspesifikasjonene er som følger:
      Format Spesifikator Beskrivelse
      % Skriver ut%
      c Skriver et enkelt tegn
      s Skriver en karakterstreng
      d eller i Konverterer et signert heltall til desimalrepresentasjon
      o Konverterer et usignert heltall til oktal representasjon
      X eller x Konverterer et usignert heltall til heksadesimal representasjon
      u Konverterer et usignert heltall til desimalrepresentasjon
      F eller f Konverterer flytende nummer til desimalrepresentasjonen
      E eller e Konverterer flytende nummer til desimaleksponentnotasjonen
      A eller a Konverterer flytende nummer til den heksadesimale eksponenten
      G eller g Konverterer flytende nummer til enten desimal- eller desimaleksponentnotasjon
      n Returnerer antall tegn som hittil er skrevet av denne samtalen til funksjonen. Resultatet skrives til den verdien argumentet peker på
      s Skriver en implementeringsdefinert tegnsekvens som definerer en peker.

      Så det generelle formatet til formatspesifikatoren er: %(flags)(width)(.precision)(length)specifier

  • vlist: En liste med argumenter som inneholder dataene du skal skrive.

vfprintf () Returverdi

Hvis det lykkes, vfprintf()returnerer funksjonen antall tegn som er skrevet. Ved feil returnerer den en negativ verdi.

Eksempel: Hvordan funksjonen vfprintf () fungerer

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

Når du kjører programmet, blir følgende skrevet til data.csv-filen:

 navn, alder John, 13 Harry, 41 Kim, 26 Yuan, 21 Laxmi, 32

Interessante artikler...