C ++ 'daki vfwprintf () işlevi, bir dosya akışına biçimlendirilmiş bir geniş dize yazmak için kullanılır.
Vfwprintf () işlevi başlık dosyasında tanımlanmıştır.
vfwprintf () prototipi
int vfwprintf (FILE * akışı, const wchar_t * biçimi, va_list vlist);
Vfwprintf () işlevi, biçime göre işaret edilen geniş dizeyi dosya akışına yazar. Geniş dize biçimi,% ile başlayan ve bir liste vlist olarak iletilen değişkenlerin değerleri ile değiştirilen biçim belirleyicileri içerebilir.
vfwprintf () Parametreler
- stream: Sonucu yazmak için çıktı dosya akışı.
- format: Akışa yazılan boş sonlu bir geniş dizgeye işaretçi. % İle başlayan isteğe bağlı biçim belirleyicileriyle birlikte karakterlerden oluşur. Biçim belirleyicileri, biçimi 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:% (bayraklar) (genişlik) (. duyarlık) (uzunluk) belirteci
- vlist: Yazılacak verileri içeren bağımsız değişkenlerin listesi.
vfwprintf () Dönüş değeri
- Başarılı olursa, vfwprintf () işlevi yazılan geniş karakterlerin sayısını döndürür.
- Başarısızlık durumunda negatif bir değer döndürür.
Örnek: vfwprintf () işlevi nasıl çalışır?
#include #include #include void write(const wchar_t *fmt,… ) ( va_list args; va_start(args, fmt); vfwprintf(fmt, args); va_end(args); ) int main () ( wchar_t desc(5)(10) = (L"Eta",L"Theta",L"Iota",L"Kappa",L"Lamda"); int x = 0; setlocale(LC_ALL, "en_US.UTF-8"); wprintf(L"Some Greek Letters"); for (wchar_t i=L'u03b7'; i<=L'u03bb'; i++) ( write(L"%ls : %lc", desc(x), i); x++; ) return 0; )
Programı çalıştırdığınızda, aşağıdakiler example.txt dosyasına yazılacaktır:
Bazı Yunanca Harfler Eta: η Theta: θ Iota: ι Kappa: κ Lamda: λ