siw*_*mas 7 c printf format-string
使用sprintf和一般语法"%A.B"我可以这样做:
double a = 0.0000005l;
char myNumber[50];
sprintf(myNumber,"%.2lf",a);
Run Code Online (Sandbox Code Playgroud)
我可以在格式字符串中动态设置A和B吗?
Sou*_*osh 10
是的,你可以这样做.您需要使用星号*作为字段宽度和.*精度.然后,您需要提供带有值的参数.就像是
sprintf(myNumber,"%*.*lf",A,B,a);
Run Code Online (Sandbox Code Playgroud)
注意:A并且B需要输入int.从C11标准,章节§7.21.6.1,fprintf()功能
......字段宽度或精度或两者都可以用星号表示.在这种情况下,
int参数提供字段宽度或精度.指定字段宽度或精度或两者的参数应在要转换的参数(如果有)之前(按此顺序)出现.负字段宽度参数被视为-标志,后跟正字段宽度.如果省略精度,则采用负精度参数.