Share via


Biçim belirtimi söz dizimi: printf ve wprintf işlevleri

Çeşitli printf ve wprintf işlevleri bir biçim dizesi ve isteğe bağlı bağımsız değişkenler alır ve çıkış için biçimlendirilmiş bir karakter dizisi oluşturur. Biçim dizesi, çıkış için değişmez karakterler veya çıktıda bağımsız değişkenin nasıl biçimlendirildiğini açıklayan kodlanmış dönüştürme belirtimleri olan sıfır veya daha fazla yönerge içerir. Bu makalede, biçim dizesinde dönüştürme belirtimlerini kodlamak için kullanılan söz dizimi açıklanmaktadır. Bu işlevlerin listesi için bkz . Akış G/Ç.

Dönüştürme belirtimi şu formdaki isteğe bağlı ve gerekli alanlardan oluşur:

%[flags][width][.precision][size]type

Dönüştürme belirtiminin her alanı, belirli bir biçim seçeneğine veya dönüştürme belirticisine işaret eden bir karakter veya sayıdır. Gerekli tür alanı, bağımsız değişkene uygulanacak dönüştürme türünü belirtir. İsteğe bağlı bayraklar, genişlik ve duyarlık alanları, baştaki boşluklar veya sıfırlar, gerekçelendirme ve görüntülenen duyarlık gibi diğer biçim yönlerini denetler. Boyut alanı, kullanılan ve dönüştürülen bağımsız değişkenin boyutunu belirtir.

Temel dönüştürme belirtimi yalnızca yüzde işaretini ve tür karakterini içerir. Örneğin, %s bir dize dönüştürmesi belirtir. Yüzde işareti karakterini yazdırmak için kullanın %%. Yüzde işaretinden sonra biçim alanı olarak anlamı olmayan bir karakter gelirse geçersiz parametre işleyicisi çağrılır. Daha fazla bilgi için bkz . Parametre doğrulama.

Önemli

Güvenlik ve kararlılık için biçim dönüştürme belirtimi dizelerinin son kullanıcı tanımlı olmadığından emin olun. Örneğin, kullanıcıdan bir ad girmesini isteyen ve girişi adlı user_namebir dize değişkeninde depolayan bir program düşünün. yazdırmak user_nameiçin hiçbir zaman şunu yapın:

printf( user_name ); /* Danger! If user_name contains "%s", program will crash */

Bunun yerine şunu yapın:

printf( "%s", user_name );

Dekont

Visual Studio 2015'te printf ve scanf işlev ailesi olarak inline bildirildi ve ve <conio.h> üst bilgilerine <stdio.h> taşındı. Eski kodu geçiriyorsanız bu işlevlerle bağlantılı olarak LNK2019 görebilirsiniz. Daha fazla bilgi için bkz . Visual C++ değişiklik geçmişi 2003 - 2015.

Tür dönüştürme tanımlayıcısı

Tür dönüştürme tanımlayıcısı karakteri, karşılık gelen bağımsız değişkenin karakter, dize, işaretçi, tamsayı veya kayan noktalı sayı olarak yorumlanıp yorum edilmeyeceğini belirtir. Tür karakteri, gerekli tek dönüştürme belirtimi alanıdır ve isteğe bağlı alanlardan sonra görünür.

Biçim dizesini izleyen bağımsız değişkenler, karşılık gelen tür karakterine ve isteğe bağlı boyut ön ekine göre yorumlanır. Karakter türleri char için dönüştürmeler ve wchar_t veya Ckullanılarak c belirtilir ve kullanılan biçimlendirme işlevine bağlı olarak veya Skullanılarak s tek baytlı ve çok baytlı veya geniş karakter dizeleri belirtilir. kullanılarak c belirtilen ve s aile işlevleri veya char olarak ve char* aile işlevleri wchar_t tarafından printf yorumlanan karakter ve wchar_t*wprintf dize bağımsız değişkenleri. kullanılarak C belirtilen ve S aile işlevleri veya wchar_t olarak ve wchar_t* aile işlevleri char tarafından printf yorumlanan karakter ve char*wprintf dize bağımsız değişkenleri. Bu davranış Microsoft'a özgüdür. Geçmiş nedenlerden dolayıwprintf, işlevler karakterlere başvurmak ve dar karakterler belirtmek için wchar_t ve CS kullanır cs.

, , int, long longlongve gibi shorttamsayı türleri ve bunların unsigned çeşitlemeleri, , i, o, u, xve Xkullanılarak dbelirtilir. , ve gibi floatkayan nokta türleri , , A, e, E, , f, Fgve Gkullanılarak along doublebelirtilir. double Varsayılan olarak, boyut ön ekine göre değiştirilmedikleri sürece, tamsayı bağımsız değişkenleri türüne int zorlamalı ve kayan nokta bağımsız değişkenleri için doublezorlama yapılır. 64 bit sistemlerde, int 32 bit bir değerdir; bu nedenle, boyut ön eki ll veya I64 kullanılmadığı sürece çıkış için biçimlendirildiklerinde 64 bit tamsayılar kesilir. Tarafından p belirtilen işaretçi türleri, platform için varsayılan işaretçi boyutunu kullanır.

Dekont

Microsoft'a özgü:
Z ve işlevleriyle kullanıldığında tür karakteri ve , C, sve S tür karakterlerinin printfwprintf davranışı cMicrosoft uzantılarıdır. ISO C standardı, CS tüm biçimlendirme işlevlerinde dar karakterler ve dizeler ile geniş karakterler ve dizeler için ve tutarlı olarak kullanır cs.

Tür alanı karakterleri

Tür karakteri Bağımsız değişken Çıkış biçimi
c Karakter İşlevlerle printf kullanıldığında tek baytlık bir karakter belirtir; işlevlerle wprintf kullanıldığında geniş bir karakter belirtir.
C Karakter İşlevlerle printf kullanıldığında geniş bir karakter belirtir; işlevlerle wprintf kullanıldığında tek baytlık bir karakter belirtir.
d Tamsayı İmzalı ondalık tamsayı.
i Tamsayı İmzalı ondalık tamsayı.
o Tamsayı İşaretsiz sekizli tamsayı.
u Tamsayı İşaretsiz ondalık tamsayı.
x Tamsayı İmzasız onaltılık tamsayı; "abcdef" kullanır.
X Tamsayı İmzasız onaltılık tamsayı; "ABCDEF" kullanır.
e Kayan nokta [-]d.dddd[]dde[+-|d] biçimindeki imzalı değer; burada d bir ondalık basamaktır, dddd belirtilen duyarlıklara bağlı olarak bir veya daha fazla ondalık basamaktır veya varsayılan olarak altıdır ve dd[d] üstenin çıkış biçimine ve boyutuna bağlı olarak iki veya üç ondalık basamaktır.
E Kayan nokta Üs yerine e biçimiyle Ee aynıdır.
f Kayan nokta [-]dddd.dd formuna sahip imzalı değer; burada dddd bir veya daha fazla ondalık basamaktır. Ondalık ayırıcıdan önceki basamak sayısı, sayının büyüklüğüne bağlıdır ve ondalık ayırıcıdan sonraki basamak sayısı istenen duyarlık veya varsayılan olarak altı sayıya bağlıdır.
F Kayan nokta Sonsuzluk ve NaN çıkışının f büyük harfle yazıldığı durumlar dışında biçimle aynıdır.
g Kayan nokta İmzalı değerler, verilen değer ve duyarlık için hangisi daha küçükse, biçiminde veya e biçiminde f görüntülenir. e Biçim yalnızca değerin üssü -4'ten küçükse veya duyarlık bağımsız değişkenine eşit veya ondan büyükse kullanılır. Sondaki sıfırlar kesilir ve ondalık ayırıcı yalnızca bir veya daha fazla basamak takip ederse görüntülenir.
G Kayan nokta biçimiyle g aynıdır, ancak Eeüs (uygunsa) yerine , tarafından tanıtılır.
a Kayan nokta [-]h.hhhhp[+|-]0xdd biçiminde imzalanmış onaltılık çift duyarlıklı kayan nokta değeri; burada h.hhhh, mantissanın onaltılık basamaklarıdır (küçük harfler kullanılarak), dd ise üs için bir veya daha fazla basamaktır. Duyarlık, noktadan sonraki basamak sayısını belirtir.
A Kayan nokta []h.hhhhP[|-+-]0Xdd biçiminde imzalı onaltılık çift duyarlıklı kayan nokta değeri; burada h.hhhh, mantisin onaltılık basamaklarıdır (büyük harfler kullanılarak), dd ise üs için bir veya daha fazla basamaktır. Duyarlık, noktadan sonraki basamak sayısını belirtir.
n Tamsayı işaretçisi Akışa veya arabelleğe kadar başarıyla yazılan karakter sayısı. Bu değer, adresi bağımsız değişken olarak verilen tamsayıda depolanır. İşaret edilen tamsayı boyutu, bağımsız değişken boyutu belirtimi ön eki tarafından denetlenebilir. Tanımlayıcı n varsayılan olarak devre dışıdır; bilgi için önemli güvenlik notunu inceleyin.
p İşaretçi türü Bağımsız değişkeni onaltılık basamaklarda bir adres olarak görüntüleyin.
s String İşlevlerle printf kullanıldığında, tek baytlı veya çok baytlı bir karakter dizesi belirtir; işlevlerle wprintf kullanıldığında geniş karakterli bir dize belirtir. Karakterler ilk null karaktere kadar veya duyarlık değerine ulaşılana kadar görüntülenir.
S String İşlevlerle printf kullanıldığında, geniş karakterli bir dize belirtir; işlevlerle wprintf kullanıldığında, tek baytlı veya çok baytlı bir karakter dizesi belirtir. Karakterler ilk null karaktere kadar veya duyarlık değerine ulaşılana kadar görüntülenir.
Z ANSI_STRING veya UNICODE_STRING yapısı VS 2013 ve öncesi
Bir veya UNICODE_STRING yapısının ANSI_STRING adresi bağımsız değişken olarak geçirildiğinde, yapının alanı tarafından Buffer işaret edilen arabellekte bulunan dizeyi görüntüleyin. Bir bağımsız değişken belirtmek UNICODE_STRING için bir boyut değiştirici ön eki w kullanın; örneğin, %wZ. Yapının Length alanı dizenin bayt cinsinden uzunluğuna ayarlanmalıdır. Yapının MaximumLength alanı, arabelleğin bayt cinsinden uzunluğuna ayarlanmalıdır.

Evrensel C Çalışma Zamanı (UCRT)
UCRT'de şu anda uyumluluk için korunan bilinen bir sorun vardır. Tanımlayıcı gibiS, boyut değiştirici ön eki olmayan tanımlayıcı, Z dar bir yazdırma işlevi (gibi) kullanırken ve geniş bir yazdırma işlevi (gibiprintfwprintf) ANSI_STRING kullanırken anlamına gelirUNICODE_STRING.
yerine Zbir belirtmek ANSI_STRINGiçin kullanınhZ. wZ (veya lZ) yine de bir UNICODE_STRINGbelirtmek için kullanılabilir.

Genellikle tür Z karakteri yalnızca ve kdPrintgibi dbgPrint bir dönüştürme belirtimi kullanan sürücü hata ayıklama işlevlerinde kullanılır.

Visual Studio 2015 ve sonraki sürümlerinde kayan nokta dönüştürme tanımlayıcısına (a, , Ae, , E, f, F, g), Gkarşılık gelen bağımsız değişken sonsuz, süresiz veya NaN ise, biçimlendirilmiş çıkış C99 standardına uygundur. Bu tabloda biçimlendirilmiş çıkış listelenir:

Değer Çıktı
Infinity inf
Sessiz NaN nan
Sinyal NaN nan(snan)
Süresiz NaN nan(ind)

Bu dizelerden herhangi birinin ön ekini bir işaret alabilir. Kayan nokta türü dönüştürme tanımlayıcısı karakteri büyük harfse, çıkış da büyük harflerle biçimlendirilir. Örneğin, biçim belirtici %F yerine %fise, sonsuz yerine olarak INFinfbiçimlendirilir. İşlevler scanf de bu dizeleri ayrıştırabilir, böylece bu değerler ve scanf işlevleri arasında printf gidiş dönüş yapabilir.

Visual Studio 2015'te CRT, sonsuz, süresiz ve NaN değerlerinin çıkışı için farklı, standart olmayan bir biçim kullandı:

Değer Çıktı
+ Sonsuzluk 1.#INFrastgele basamaklar
-Sonsuz -luk -1.#INFrastgele basamaklar
Süresiz (sessiz NaN ile aynı) basamak.#INDrastgele basamaklar
NaN basamak.#NANrastgele basamaklar

Bu dizelerden herhangi biri bir işaret ön ekiyle eklenmiş olabilir ve alan genişliğine ve duyarlığına bağlı olarak farklı biçimlendirilmiş olabilir ve bazen olağan dışı efektlerle. Örneğin, printf("%.2f\n", INFINITY) #INF iki duyarlık basamağına "yuvarlanacağı" için yazdırılır1.#J.

Dekont

veya %Söğesine karşılık gelen bağımsız değişken ya da Buffer öğesine karşılık %s gelen %Zbağımsız değişkenin alanı null bir işaretçiyse, "(null)" görüntülenir.

Dekont

Tüm üstel biçimlerde, görüntülenecek üstel basamak sayısı en az ikidir ve yalnızca gerekirse üç tane kullanılır. işlevini kullanarak _set_output_format , Visual Studio 2013 ve öncesi için yazılmış kodla geriye dönük uyumluluk için görüntülenen basamak sayısını üç olarak ayarlayabilirsiniz.

Önemli

%n Biçim doğal olarak güvenli olmadığından varsayılan olarak devre dışı bırakılır. Bir biçim dizesinde karşılaşılırsa%n, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Desteği etkinleştirmek %n için bkz _set_printf_count_output. .

Bayrak yönergeleri

Dönüştürme belirtimindeki ilk isteğe bağlı alan bayrak yönergelerini içerir. Bu alan, işaretlerin, boşlukların, baştaki sıfırların, ondalık ayırıcıların ve sekizlik ve onaltılık ön eklerin çıkışını belirten sıfır veya daha fazla bayrak karakteri içerir. Dönüştürme belirtiminde birden fazla bayrak yönergesi görüntülenebilir ve bayrak karakterleri herhangi bir sırada görüntülenebilir.

Bayrak karakterleri

Bayrak Anlamı Varsayılan
- Sonucu verilen alan genişliği içinde sola hizalayın. Sağa hizalayın.
+ Çıkış değeri imzalı bir türdeyse önek için bir işaret (+ veya -) kullanın. İşaret yalnızca negatif imzalı değerler (-) için görünür.
0 Genişlik ön ekinde 0ise, en düşük genişliğe ulaşılana kadar baştaki sıfırlar eklenir. hem - hem de 0 görünürse, 0 yok sayılır. Bir tamsayı biçimi (, , , , X, o) diçin belirtilirse 0 ve bir duyarlık belirtimi de (örneğin, %04.d) 0 yoksayılır. xui veya kayan a nokta biçimi için belirtilirse0, baştaki sıfırlar veya 0X ön ekinin ardından mantisye 0x eklenir.A Doldurma yok.
blank (' ') Çıkış değeri imzalı ve pozitifse ön ekini eklemek için boş değer kullanın. Hem boş hem de + bayrakları görünürse boş değer yoksayılır. Boş değer görüntülenmez.
# , xveya biçimiyle kullanıldığında, # bayrağı 0sıfır olmayan herhangi bir çıkış değerini önek oiçin sırasıyla , 0xveya 0XX kullanır. Ön ek görüntülenmez.
, , E, f, F, aveya A biçimiyle ekullanıldığında, # bayrak çıkış değerini ondalık ayırıcı içerecek şekilde zorlar. Ondalık nokta yalnızca basamaklar onu izlediğinde görünür.
veya G biçimiyle g kullanıldığında, # bayrak çıkış değerini ondalık ayırıcı içerecek şekilde zorlar ve sondaki sıfırların kesilmesini engeller.

, , d, iuveya sile ckullanıldığında yoksayılır.
Ondalık nokta yalnızca basamaklar onu izlediğinde görünür. Sondaki sıfırlar kesilir.

Genişlik belirtimi

Dönüştürme belirtiminde, herhangi bir bayrak karakterinden sonra isteğe bağlı genişlik belirtimi alanı görüntülenir. Bağımsız width değişken, çıkış olan en az karakter sayısını denetleyen negatif olmayan bir ondalık tamsayıdır. Çıkış değerindeki karakter sayısı belirtilen genişlikten küçükse, minimum genişliğe ulaşılana kadar değerlerin soluna veya sağında (sol hizalama bayrağının (-) belirtilip belirtilmediğinden bağımsız olarak boşluklar eklenir. 0 ön ekine sahipse width , en düşük genişliğe ulaşılana kadar tamsayı veya kayan nokta dönüştürmelerine baştaki sıfırlar eklenir; dönüştürmenin sonsuz veya NaNolduğu durumlar dışında.

Genişlik belirtimi hiçbir zaman değerin kesilmesine neden olmaz. Çıkış değerindeki karakter sayısı belirtilen genişlikten büyükse veya sağlanmadıysa width , duyarlık belirtimine bağlı olarak değerin tüm karakterleri çıkış olur.

Genişlik belirtimi bir yıldız ()* ise, bağımsız değişken listesinden bir int bağımsız değişken değeri sağlar. Bağımsız width değişken, bu örnekte gösterildiği gibi bağımsız değişken listesinde biçimlendirilen değerden önce olmalıdır:

printf("%0*d", 5, 3); /* 00003 is output */

Dönüştürme belirtiminde eksik veya küçük width bir değer, çıkış değerinin kesilmesine neden olmaz. Dönüştürmenin sonucu değerden daha width genişse, alan dönüştürme sonucunu içerecek şekilde genişler.

Duyarlık belirtimi

Dönüştürme belirtiminde, isteğe bağlı üçüncü alan duyarlık belirtimidir. Dönüştürme türüne bağlı olarak dize karakter sayısını, ondalık basamak sayısını veya çıkış yapılacak önemli basamak sayısını belirten bir nokta (.) ve ardından negatif olmayan bir ondalık tamsayıdan oluşur.

Genişlik belirtiminin aksine, duyarlık belirtimi çıkış değerinin kesilmesine veya kayan nokta değerinin yuvarlanmasına neden olabilir. 0 olarak belirtilirse precision ve dönüştürülecek değer 0 ise, bu örnekte gösterildiği gibi sonuç karakter çıkışı olmaz:

printf( "%.0d", 0 ); /* No characters output */

Duyarlık belirtimi bir yıldız ()* ise, bağımsız değişken listesinden bir int bağımsız değişken değeri sağlar. Bağımsız değişken listesinde, precision bu örnekte gösterildiği gibi, bağımsız değişkenin biçimlendirilmekte olan değerden önce olması gerekir:

printf( "%.*f", 3, 3.14159265 ); /* 3.142 output */

Karakter, type aşağıdaki tabloda gösterildiği gibi atlandığında precision veya varsayılan duyarlık yorumunu precision belirler.

Duyarlık değerleri türü nasıl etkiler?

Tür Anlamı Varsayılan
a, A Duyarlık, noktadan sonraki basamak sayısını belirtir. Varsayılan duyarlık 13'dür. Duyarlık 0 ise, bayrağı kullanılmadığı sürece # ondalık nokta yazdırılmaz.
c, C Duyarlık hiçbir etkiye sahip değildir. Karakter yazdırılır.
d, i, o, u, x, X Duyarlık, yazdırılacak en az basamak sayısını belirtir. Bağımsız değişkendeki basamak sayısı duyarlıktan küçükse, çıkış değeri solda sıfırlarla doldurulur. Basamak sayısı duyarlığı aştığında değer kesilmez. Varsayılan duyarlık 1'dir.
e, E Duyarlık, ondalık ayırıcıdan sonra yazdırılacak basamak sayısını belirtir. Yazdırılan son rakam yuvarlanmış. Varsayılan duyarlık 6'dır. Duyarlık 0 ise veya nokta (.) izleyen bir sayı olmadan görünüyorsa, ondalık ayırıcı yazdırılmaz.
f, F Duyarlık değeri ondalık ayırıcıdan sonraki basamak sayısını belirtir. Ondalık bir nokta görüntülenirse, ondan önce en az bir basamak görüntülenir. Değer uygun basamak sayısına yuvarlanmış. Varsayılan duyarlık 6'dır. Duyarlık 0 ise veya nokta (.) izleyen bir sayı olmadan görünüyorsa, ondalık ayırıcı yazdırılmaz.
g, G Duyarlık, yazdırılan en fazla anlamlı basamak sayısını belirtir. Altı önemli basamak yazdırılır ve sondaki sıfırlar kesilir.
s, S Duyarlık, yazdırılacak en fazla karakter sayısını belirtir. Duyarlık aşan karakterler yazdırılmaz. Karakterler null karakter bulunana kadar yazdırılır.

Bağımsız değişken boyutu belirtimi

Dönüştürme belirtiminde boyut alanı, tür dönüştürme tanımlayıcısı için bir bağımsız değişken uzunluğu değiştiricidir. Boyut alanı ön ekleri tür alanına (hh, h, j, l (küçük harf L), L, ll, t, wz, I (büyük harf i), I32ve I64— değiştirdikleri dönüştürme tanımlayıcısına bağlı olarak karşılık gelen bağımsız değişkenin "boyutunu" (uzun veya kısa, 32 bit veya 64 bit, tek baytlık veya geniş karakter) belirtir. Bu boyut ön ekleri, aşağıdaki tabloda gösterildiği gibi bağımsız değişken boyutlarının yorumlanmasını belirtmek için ve wprintf işlev ailelerindeki tür karakterleriyle printf birlikte kullanılır. Boyut alanı bazı bağımsız değişken türleri için isteğe bağlıdır. Boyut ön eki belirtilmediğinde biçimlendirici, 32 bit türleri ve , ve kayan nokta bağımsız değişkenleri 64 bit int türleri olarak, imzalı charveya imzasız , shortlongint, , ve long doublefloatdoublenumaralandırma türleri gibi tamsayı bağımsız değişkenlerini tüketir.double Bu davranış, değişken bağımsız değişken listeleri için varsayılan bağımsız değişken yükseltme kurallarıyla eşleşir. Bağımsız değişken yükseltme hakkında daha fazla bilgi için bkz. Sonek ifadelerinde Üç Nokta ve Varsayılan Bağımsız Değişkenler. Hem 32 bit hem de 64 bit sistemlerde, 64 bit tamsayı bağımsız değişkeninin dönüştürme belirtimi veya I64boyut ön ekini ll içermelidir. Aksi takdirde, biçimlendiricinin davranışı tanımlanmamıştır.

Bazı türler 32 bit ve 64 bit kodda farklı boyutlardadır. Örneğin, size_t x86 için derlenmiş kodda 32 bit, x64 için derlenmiş kodda 64 bit uzunluğundadır. Değişken genişlikli türler için platformdan bağımsız biçimlendirme kodu oluşturmak için değişken genişlikli bağımsız değişken boyutu değiştiricisini kullanabilirsiniz. Bunun yerine, 64 bit bağımsız değişken boyutu değiştiricisi kullanın ve değişken genişlikli bağımsız değişken türünü açıkça 64 bit olarak yükseltin. Microsoft'a özgü I (büyük harf i) bağımsız değişken boyutu değiştiricisi değişken genişlikli tamsayı bağımsız değişkenlerini işler, ancak taşınabilirlik için türe özgü j, tve z değiştiricilerini öneririz.

printf ve wprintf biçim türü tanımlayıcıları için boyut ön ekleri

Belirtmek için Ön ek kullan Tür tanımlayıcısı ile
char
unsigned char
hh d, i, o, u, , xveya X
short int
short unsigned int
h d, i, o, u, , xveya X
__int32
unsigned __int32
I32 d, i, o, u, , xveya X
__int64
unsigned __int64
I64 d, i, o, u, , xveya X
intmax_t
uintmax_t
j veya I64 d, i, o, u, , xveya X
long double l (küçük harf L) veya L a, , Ae, , E, f, F, , gveyaG
long int
long unsigned int
l (küçük L) d, i, o, u, , xveya X
long long int
unsigned long long int
ll (küçük harfLI LL) d, i, o, u, , xveya X
ptrdiff_t t veya I (büyük harf i) d, i, o, u, , xveya X
size_t z veya I (büyük harf i) d, i, o, u, , xveya X
Tek baytlık karakter h c veya C
Geniş karakter l (küçük harf L) veya w c veya C
Tek baytlık karakter dizesi h s, S veya Z
Geniş karakterli dize l (küçük harf L) veya w s, S veya Z

ptrdiff_t ve size_t türleri 32 bit platformlarda __int32 veya unsigned __int32__int64unsigned __int64 64 bit platformlardadır. I (büyük harf i), j, tve z boyut ön ekleri platform için doğru bağımsız değişken genişliğini alır.

Visual C++'da, ayrı bir tür olsa long double da, ile aynı iç gösterime doublesahiptir.

Veya tür tanımlayıcısı, içindeki ve içindeki işlevleriyle wprintfC eş anlamlıdır printfc.hChc , , veya tür tanımlayıcısı, içindeki ve içindeki işlevleriyle cprintfCwprintf eş anlamlıdır.wCwclClc Veya tür tanımlayıcısı, içindeki ve içindeki işlevleriyle wprintfS eş anlamlıdır printfs.hShs , ls, veya tür tanımlayıcısı, içindeki ve içindeki printf işlevleriyle wprintfsS eş anlamlıdır.wSwslS

Dekont

Microsoft'a özgü:
I (büyük harf i), I32, I64ve w bağımsız değişken boyutu değiştirici ön ekleri Microsoft uzantılarıdır ve ISO C ile uyumlu değildir. h Türündeki verilerle kullanıldığında önek ve l veri türüyle chardouble kullanıldığında (küçük harf L) ön eki Microsoft uzantılarıdır.

Ayrıca bkz.

printf, _printf_l, wprintf, _wprintf_l
printf_s, _printf_s_l, wprintf_s, _wprintf_s_l
printf_p KonumSal Parametreler