C ++ 'daki swprintf () işlevi, geniş bir dizge arabelleğine biçimlendirilmiş bir geniş dize yazmak için kullanılır.
Swprintf () işlevi başlık dosyasında tanımlanmıştır.
swprintf () prototipi
int swprintf (wchar_t * arabellek, size_t boyut, const wchar_t * biçim,…);
Swprintf () işlevi, biçimiyle gösterilen geniş dizgeyi arabelleğe yazar. Yazılabilecek maksimum karakter sayısı (boyut-1).
Karakterler yazıldıktan sonra, sonlandırıcı bir boş geniş karakter eklenir.
Geniş dize biçimi,% ile başlayan ve bunların yerini, swprintf () işlevine ek bağımsız değişkenler olarak iletilen değişkenlerin değerleriyle değiştiren biçim belirleyicileri içerebilir.
swprintf () Parametreler
- buffer: Sonucu yazmak için dizge tamponunun işaretçisi.
- size: size-1 olan arabelleğe yazılacak maksimum karakter sayısını belirtin.
- format: stdout'a yazılan boş sonlu bir geniş dizgeye işaretçi. % İle başlayan isteğe bağlı biçim belirleyicileriyle birlikte geniş 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
- …: Yazılacak verileri belirten diğer ek argümanlar. Biçim tanımlayıcısına göre bir sırayla oluşurlar.
swprintf () Dönüş değeri
- Başarı durumunda, swprintf () işlevi sonlandırıcı boş geniş karakter hariç yazılan karakter sayısını döndürür.
- Bir kodlama hatası meydana gelirse veya oluşturulacak karakter sayısı boyuta eşitse veya büyükse, negatif bir değer döndürülür.
Örnek: swprintf () işlevi nasıl çalışır?
#include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )
Programı çalıştırdığınızda, aşağıdakiler example.txt dosyasına yazılacaktır:
Bazı İbranice harfler א ב ס ד ת