c - 当字符串具有变量时使用列填充打印

标签 c formatting printf

当输出像这样静态时,我设法打印了左对齐的填充列:

int col = 40;
printf("%-*s", col, "padded column");
printf("after the column\n");

当字符串不是静态的而是用变量格式化时,我试图做同样的事情,即:

int col = 40;
int var1 = 200;
printf("???", col, var1, " padded column");
printf("after the column\n");

预期输出的位置,例如:

200 padded column                  after padded column

最佳答案

您需要分两部分生成文本:

char paddedColText[100];
snprintf(paddedColText, sizeof paddedColText, "%d padded column", var1);
printf("%-*s", col, paddedColText);

或者,替代方案:

col -= printf("%d", var1); // Returns string length
printf("%-*s", col, " padded column");

但请记住 printf 可以 返回负错误代码,因此在使用前检查返回值是个好主意。

关于c - 当字符串具有变量时使用列填充打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757426/

相关文章:

CreateFileMapping 多线程

c - 使用内存引用的 GCC 内联汇编程序

c - printf 和 gets 的区别

c++ - sprintf/格式化字符串可以直接传递给函数吗?

c - C 中的 MD4 实现——一致但错误的输出

c - GLX 垂直同步事件

使用 Ruby mysql gem 格式化 Mysql 表

javascript - 如何将 args[1] 转换为日期以输入 MySQL DB(Javascript、DiscordJS)?

Python:如何在不转换为 ASCII 的情况下使用打印

C++ getline() 读取文件行无限循环遍历文件