2011-10-31 13 views

cevap

21

%td. Bakınız here.

+1

Bu referans, tam görünmez; 't' karakteri, 'd' tipi belirticinin uzunluk değiştiricisidir. İlgilendiğiniz platformsa, sorunuzu Visual Studio'yu belirtmenizi de öneririm. – trojanfoe

+5

'% td' standarttır. Visual Studio'nun C derleyicisi mevcut C standardına uymuyor. –

+3

@AmirSaniyan: "t", bir tür belirteci değil, bir türdür (buradaki tür "d" dir). [Görünüşte] (http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx) '' Microsoft uygulaması ile 'ptrdiff_t' için boyut belirteci olarak kullanılmalıyım (yani'% Id'), hangi standart değil. – caf

5

%td'u kullanın ve derleyiciniz desteklemiyorsa, %ld'u da deneyin (ayrıca girdiyi long'a dökün).

11

C11 taslak 7.21.6.1 7 "fprintf fonksiyonu"

t

takip eden bir d, i, o, u, x veya X dönüşüm belirteci geçerli olduğunu belirtir içinde ptrdiff_t için uzunluğu katsayısının düzeltilmesi açıklamaktadır bir ptrdiff_t ya da karşılık gelen imzasız tamsayı tipi argümanına; veya aşağıdaki n dönüşüm belirtecinin ptrdiff_t bağımsız değişkenine bir işaretçi için geçerli olduğu.

aşağıdaki gibi kullanın "%td": Kredi: derleyici imzalı tür atama "%td", desteklemez @trojanfoe

ptrdiff_t diff = b - a; 
printf("diff = %td", diff); 

ise - daha uzun, daha iyi. Daha sonra alternatif format ve argüman eşleşmesini sağlayın.

// Note the cast 
printf("diff = %lld", (long long) diff); // or 
printf("diff = %ld", (long) diff); 

Referans format specifiers

İlgili konular