簡體   English   中英

指定要打印的小數位數可變f

[英]Specify variable number of decimal places to printf

我想知道如何使用scanf()允許用戶輸入他想要給出答案的小數位數,以及如何將這個變量輸入到printf格式說明符中。 例如

printf("The answer is %.(variable wanted here)f", answer);

如果將*用作字段精度說明符,它將告訴printf它是可變的。 然后,您可以指定一個附加的int參數,以告知printf所需的精度。

printf(3)

代替十進制數字字符串,可以寫“ *”或“ * m $”(對於某些十進​​制整數m)來指定字段寬度分別在下一個參數或第m個參數中給出,必須屬於int類型。

請注意,這也可以設置要從字符串中打印的最大字符數。

#include <stdio.h>

int main(void)
{
    int places = 3;
    printf("%0.*f\n", places, 1.23456789);
    printf("%0.*f\n", places, 6.7);

    char buf[] = "Stack OverflowXXXXXXXX";
    printf("%.*s\n", 14, buf);

    return 0;
}

輸出:

1.235
6.700
Stack Overflow

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM