为了账号安全,请及时绑定邮箱和手机立即绑定

在printf中设置可变文本列的宽度

/ 猿问

在printf中设置可变文本列的宽度

C
梵蒂冈之花 2019-09-21 13:58:34

为了确定C语言中列的大小,我们使用%<number>d。例如,我可以键入%3d,它会给我一列width = 3。我的问题是,之后的数字%是我收到的变量,所以我需要类似的东西%xd(哪里x是我之前在程序中收到的整数变量)。但这不起作用。

还有其他方法吗?


查看完整描述

2 回答

?
30秒到达战场

您可以按照以下步骤进行操作:


printf("%*d", width, value);

根据Lee的评论:

您还可以使用*作为精度大小:


printf("%*.*f", width, precision, value);


查看完整回答
反对 回复 2019-09-21
?
HUWWW

仅出于完整性考虑,想提到的是,在符合POSIX的版本中,printf()您还可以将实际的字段宽度(或精度)值放在参数列表中的其他位置,并使用基于1的参数编号和美元符号来引用它:


字段宽度或精度或两者兼而有之,可以用星号“ *”或星号后跟一个或多个十进制数字和“ $”(而不是数字字符串)来表示。在这种情况下,int参数可提供字段宽度或精度。负场宽度被视为左调整标志,后跟正场宽度;负精度视为丢失。如果单个格式指令将位置(nn $)和非位置参数混合在一起,则结果是不确定的。


例如, printf ( "%1$*d", width, value );


查看完整回答
反对 回复 2019-09-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信