是否可以将整数传递给字符串的精度说明符

时间:2016-08-17 08:49:46

标签: c

我想知道是否可以将整数作为精度说明符传递。

例如,如果

 static void ShouldBeTruncated( char * StringToCheck, int precision )
{
  (strlen( StringToCheck )>= precision) ? printf( "%.15s...", StringToCheck) : printf( "%s", StringToCheck)  ;
}

是否可以用%.15s替换%.<<PRECISION GOES HERE >>s,以便可以指定精度长度? 如果有可能,怎么做?

1 个答案:

答案 0 :(得分:2)

是的,使用*作为精度,它从参数列表中取出另一个int参数(在要打印其值的参数之前):

void prec_print(double d, int prec)
{ 
    printf("%.*f\n", prec, d);
}

(同样,字段宽度也可以使用*动态指定:%*.*f, width, prec, val。)