【C Language】格式符%d %f

129 阅读1分钟

%f %d

printf("%-4.2f\n",213.82631);

[分析]

%-4.2f

  • % 格式说明符
  • - 表示输出的数字将左对齐,在字段宽度内
  • 4:表示 总的字段宽度是 4 个字符
  • .2 表示小数点后有两位小数
  • f 表浮点数格式

printf("%-4.2f\n",213.82631); 在本题目中,应该输出的是213.83 但是这个输出的字符串超出了要求的4个字符宽度, 这是不可能的。 但是实际总长度是会超过4个字符的。

总结 输出结果将会是213.83 并且实际总长度超过4个字符,宽度限制将会被忽略。

由于这个长度超过了指定的宽度,printf会忽略宽度限制,并输出完整的213.83

image.png

image.png

原理 -“在C语言的printf函数中,当指定的字段宽度小于实际要打印的字符串(或数字转换为字符串后的形式)的长度时,printf不会报错,而是会简单地忽略这个宽度限制,并输出完整的字符串。这是因为printf的设计目标是尽可能地按照用户的要求格式化输出,但如果用户的要求(如宽度限制)与实际内容不兼容,printf会选择输出实际内容而不是截断它或产生错误。