使用sprintf和一般語法"%A.B"
我可以這樣做:集精密動態使用的sprintf
double a = 0.0000005l;
char myNumber[50];
sprintf(myNumber,"%.2lf",a);
我可以在格式字符串設定A和B的動態?
使用sprintf和一般語法"%A.B"
我可以這樣做:集精密動態使用的sprintf
double a = 0.0000005l;
char myNumber[50];
sprintf(myNumber,"%.2lf",a);
我可以在格式字符串設定A和B的動態?
是的,你可以做到這一點。您需要使用星號*
作爲字段寬度,並使用.*
作爲精度。然後,您需要提供帶有這些值的參數。喜歡的東西
sprintf(myNumber,"%*.*lf",A,B,a);
注:A
和B
必須int
類型。從C11
標準,章§7.21.6.1,fprintf()
功能
...場寬度,或精度,或兩者,可以用星號來表示。在 這種情況下,一個
int
參數提供字段寬度或精度。指定字段寬度或精度或兩者的參數應在要轉換的參數(如果有)之前出現(按該順序)。負字段寬度參數被視爲-
標誌,後跟正字段寬度。採用負精度參數,就像精度被省略一樣。
是的,你可以看到例如[這個'printf'(和家庭)參考](http://en.cppreference.com/w/c/io/fprintf)。 –
或者,格式字符串本身也可以通過對sprintf的另一個調用來創建。 – Lundin