首页 > 解决方案 > 使用格式说明符打印数字或字符的多个实例

问题描述

例如,是否可以使用格式说明符打印超过 1 个数字?

printf("%05d",5);

这将打印 00005

有没有办法让它打印 ----5 例如使用这些格式说明符?

标签: cprintfformat-specifiers

解决方案


如果您可以使用 alloca,那么一个不太优雅的解决方案是:

printf("%s%d", (char*)memset(memset(alloca(4), '\0', 4), '-', 3),5);

如果你可以允许 c++,那么你可以试试这个看起来更优雅的:

printf("%s%d",std::string(3,'-').c_str(),5); 

这两种情况都会给出---5


推荐阅读