C ++ vfprintf () - C ++ Standart Kitaplığı

C ++ 'daki vfprintf () işlevi, bir dosya akışına biçimlendirilmiş bir dize yazmak için kullanılır.

vfprintf () prototipi

 int vfprintf (FILE * akım, sabit karakter * formatı, va_list vlist);

vfprintf()Fonksiyon dosya akım'a biçimine göre işaret dize yazar. Dize biçimi,% ile başlayan ve bir liste vlist olarak iletilen değişkenlerin değerleriyle değiştirilen biçim belirleyicileri içerebilir.

Başlık dosyasında tanımlanmıştır.

vfprintf () Parametreler

  • stream: Sonucu yazmak için bir çıktı dosyası akışı.
  • format: Dosya akışına yazılan boş sonlandırılmış bir dizeye işaretçi. % İle başlayan isteğe bağlı biçim belirleyicileriyle birlikte karakterlerden oluşur.

    Biçim belirteçleri, biçim dizesini izleyen ilgili değişkenlerin değerleriyle değiştirilir.

    Biçim belirticisi aşağıdaki bölümlerden oluşur:

    • Önde gelen% işareti
    • Bayraklar: Dönüştürme davranışını değiştiren isteğe bağlı bir veya daha fazla bayrak.
      • -: Sonucu alan içinde sola yaslayın. Varsayılan olarak doğru şekilde yaslanmıştır.
      • +: Olumlu sonuçlar için bile sonucun işareti değerin başına eklenir.
      • Boşluk: İşaret yoksa sonucun başına bir boşluk eklenir.
      • #: Dönüşümün alternatif bir biçimi gerçekleştirilir.
      • 0: Tam sayı ve kayan nokta sayısı için kullanılır. Sayıları boşluk yerine doldurmak için baştaki sıfırlar kullanılır.
    • Genişlik: Minimum genişlik alanını belirtmek için kullanılan isteğe bağlı bir * veya tamsayı değeri.
    • Kesinlik: a. ardından * veya tamsayı veya hassasiyeti belirtmek için hiçbir şey gelmez.
    • Uzunluk: Bağımsız değişkenin boyutunu belirten isteğe bağlı bir uzunluk değiştirici.
    • Specifier: Bir dönüşüm formatı belirleyicisi. Kullanılabilir biçim belirleyicileri aşağıdaki gibidir:
      Biçim Tanımlayıcısı Açıklama
      % Baskılar%
      c Tek bir karakter yazar
      s Bir karakter dizisi yazar
      d veya ben İşaretli bir tamsayıyı ondalık gösterime dönüştürür
      Ö İşaretsiz bir tamsayıyı sekizlik gösterime dönüştürür
      X veya x İşaretsiz bir tamsayıyı onaltılık gösterime dönüştürür
      sen İşaretsiz bir tamsayıyı ondalık gösterime dönüştürür
      F veya f Kayan nokta sayısını ondalık gösterime dönüştürür
      E veya e Kayan nokta sayısını ondalık üslü gösterime dönüştürür
      A veya a Kayan nokta sayısını onaltılı üsse dönüştürür
      G veya g Kayan noktalı sayıyı ondalık veya ondalık üslü gösterime dönüştürür
      n Bu çağrı tarafından o ana kadar yazılan karakter sayısını işleve döndürür. Sonuç, bağımsız değişken tarafından gösterilen değere yazılır
      p Bir işaretçi tanımlayan bir uygulama tanımlı karakter dizisi yazar.

      Dolayısıyla, biçim belirticisinin genel biçimi şöyledir: %(flags)(width)(.precision)(length)specifier

  • vlist: Yazılacak verileri içeren bağımsız değişkenlerin listesi.

vfprintf () Dönüş değeri

Başarılı olursa, vfprintf()işlev yazılan karakter sayısını döndürür. Başarısızlık durumunda negatif bir değer döndürür.

Örnek: vfprintf () işlevi nasıl çalışır?

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

Programı çalıştırdığınızda, data.csv dosyasına aşağıdakiler yazılacaktır:

 isim, yaş John, 13 Harry, 41 Kim, 26 Yuan, 21 Laxmi, 32

Ilginç makaleler...