c语言输出数组时如何固定长度

例如现在有个double数组a[4]={12.1,7.214,888.88,0.24154}

如果只是用:

for(i=0;i<4;i++)

printf("%3.5lf-",a[i]);

那么输出的结果为"12.10000-7.21400-888.88000-0.24154"

不难看出第一个长度为8,第二个长度为7,第三个9,第四个7

但我想它们输出时长度都为9,也就我希望是这样的结果“ 12.10000-  7.21400-888.88000-  0.24154”

请问可以做到吗,该怎么写输出语句

可以先换成字符串,然后再格式化输出
 

double a[4] = { 12.1, 7.214, 888.88, 0.24154 };

	for (int i = 0; i < 4; i++)
	{
		char data[100] = { 0 };
		sprintf_s(data, _countof(data), "%3.5f", a[i]);
		printf("%8s-", data);
	}

 

是你描述错了吗,你希望的结果和你实际输出的不是一样吗

printf("%03.5lf-",a[i])可以补齐0,但没办法补齐空格

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html