c++ - 我可以使用 printf() 格式的变量吗

标签 c++ c format printf

您好,我想在 C/C++ 中格式化我的二叉搜索树的输出,而不是每次都对其进行硬编码。我看到人们使用 (%*, int),但它对我不起作用。

printf("%* %-s\n", format, String")  format = format*2 

printf("%* %-s\n", format, String")

我想要这样的输出

字符串 字符串

最佳答案

printf 格式可以使用可变参数作为宽度和精度参数:

printf("%*s\n", width, str);

将输出在 width 字符上右对齐的字符串,前导空格。 如果字符串长于 width 个字符,则不会被截断。如果您希望尾随空格左对齐,请添加 - 选项并使用 "%-*s\n"

如果您希望字符串对齐和截断,请以这种方式同时使用宽度和精度参数:

printf("%*.*s\n", width, width, str);

关于c++ - 我可以使用 printf() 格式的变量吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032348/

相关文章:

PHP heredoc 不保留格式

c++ - 如何处理const对象中非const引用成员的初始化?

c++ - 如何围绕任意点旋转一组二维形状

c++ - 如何将文件保存到可能的新目录中?

c++ - 使用 n[c -'0' ] 的真正用途是什么?

c - 通过 glfw 或 lungarg 为 code::blocks 设置 vulkan

c# - 格式化 TimeSpan 字符串

excel - 为 Excel 格式添加括号创建公式

C:找到算术表达式类型的最大值和最小值

c - 在 C 中的 ASCII 文件中查找不可打印的 ASCII 字符