2012-08-15 40 views
1

通常,當我們這樣做:在printf(「%。* f」,a,b)中,如果'a'爲負值,結果如何?

printf (" %.*f ", 2, 3.3); 

精度寬度被設置爲2個,並輸出3.30。但是如果寬度被賦予負值,例如

printf (" %.*f ", -2, 3.3); 

輸出是3.300000這意味着正在使用默認寬度。那麼究竟是什麼在這裏做-2

+4

根據[此](http://en.cppreference.com/ w/cpp/io/c/fprintf),它被忽略:*如果這個參數的值是負數,它會被忽略。* – chris 2012-08-15 14:47:27

+0

Huh。我從http://linux.die.net/man/3/printf – 2012-08-15 14:49:47

+0

Welp,http://www.manpagez.com/man/3/printf/得到了一些完全不同的東西,它也說它被忽略了。 – 2012-08-15 14:51:21

回答

3
作爲

克里斯評論類似以上,

負精度被取爲如果精度省略

這裏的一個reference

+1

§7.21.6.1/ 5如果任何人有興趣(至少在C11之一)。我只是看着自己。 – chris 2012-08-15 14:50:59

2

晚C11標準草案說(7.21.6.1):

負精度參數取爲如果精度被刪去。

(是的,這是爲fprintf,這也是printf說什麼的草案(7.21.6.3):)

printf函數等同於與fprintf中的參數標準輸出前插入 參數printf。

相關問題