我试图使用宽度数组打印特定宽度的变量。我想做点什么
int widthArr[] = {5, 4};
uint32_t var1 = 123;
uint32_t var2 = 4567;
printf("%widthArr[0]u, %widthArr[1]u ", var1, var2);
但是使用
widthArr
中的实际值作为宽度。能做到吗? 最佳答案
您可以使用*
修饰符从参数中读取字段宽度,而不是硬编码宽度,如下所示:
printf("%*u, %*u ", widthArr[0], var1, widthArr[1], var2);
// prints " 123, 4567 "
从the C++ reference page:
在使用
*
时,宽度由附加的int
类型的参数。请注意,星号也可用于动态设置精度。
关于c - 从printf arg中的数组读取。 printf(“%widthArr [0] u,%widthArr [1] u”,var1,var2),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37143731/