試行從KandR另一示例中,我有以下的C代碼:printf的連續打印
#include <stdio.h>
int main(){
double nc = 5;
printf("%*.0f",nc);
return 0;
}
這將打印5,然後將其繼續移動(打印空白字符)從左至右,然後一個新行,直到停止按Ctrl + C)。當我將printf
行更改爲printf("%.0f",nc)
時,它按預期工作,即只打印5並停止。
根據http://www.cplusplus.com/reference/cstdio/printf/ printf語法是:[精度]
%[標誌] [寬度] [長度]說明符。
我改變了[width]
到*
使printf
不限制輸出數字。
1)爲什麼它會一直打印空白字符直到停止?
2)當我沒有給出任何寬度時,
printf
默認情況下會是什麼?3)我也修改了上面的代碼來設置
nc = 500
,然後printf
不會打印任何東西,除了連續的空白字符!
當我將其更改爲500.00時,它將打印500,之後它會一直打印空白字符直到停止。爲什麼當我設置nc=500
時沒有輸出,爲什麼當我設置nc=500.00
時有輸出?
星號會導致printf從參數中讀取寬度。試試'printf(「%*。0f」,10,nc)'。 – ooga