我想知道是否可以将整数作为精度说明符传递。
例如,如果
static void ShouldBeTruncated( char * StringToCheck, int precision )
{
(strlen( StringToCheck )>= precision) ? printf( "%.15s...", StringToCheck) : printf( "%s", StringToCheck) ;
}
是否可以用%.15s
替换%.<<PRECISION GOES HERE >>s
,以便可以指定精度长度?
如果有可能,怎么做?
答案 0 :(得分:2)
是的,使用*
作为精度,它从参数列表中取出另一个int
参数(在要打印其值的参数之前):
void prec_print(double d, int prec)
{
printf("%.*f\n", prec, d);
}
(同样,字段宽度也可以使用*
动态指定:%*.*f, width, prec, val
。)