所以如果我有类似的输出
Hello How are you 500
Halllo 500
并且那个“500”总是应该在那个特定的位置,不管它前面有什么需要放什么?
我试过添加类似的东西
printf ("10%d", w.e);
printf ("\t\t%d", w.e);
但是像“你好,你好吗”和“你好”这样的词总是会影响它并沿着同一条线进一步移动。如何将 500 输出定位在一个位置?
所以如果我有类似的输出
Hello How are you 500
Halllo 500
并且那个“500”总是应该在那个特定的位置,不管它前面有什么需要放什么?
我试过添加类似的东西
printf ("10%d", w.e);
printf ("\t\t%d", w.e);
但是像“你好,你好吗”和“你好”这样的词总是会影响它并沿着同一条线进一步移动。如何将 500 输出定位在一个位置?
您需要右填充前面的单词 ieHello How are you
和Halllo
. 一旦它被填充,那么500
将始终从相同的位置开始。
您可以将字符串右填充为:
printf("%-30s", "Hello How are you");
printf("%-30s", "Halllo");
这将为字符串分配 30 个字符长度。您的号码将跟随下一个。
您可以使用 printf 指定前导字符串应占用的最小字符数,就像格式化数值时一样。
事实上,您可以在一次调用 printf(伪代码)中打印两者:
format_string = "%-30s%5.0d";
leading_text = "hello";
number = 500;
printf(format_string, leading_text, number);
像这样的东西?
printf("%-50s%d\n", "Hello How are you", 500);
printf("%-50s%d\n", "Halllo", 500);
打印出来:
Hello How are you 500
Halllo 500
这是另一种可能更灵活的方法:
printf("%*d\n", 50-printf("Halllo"), 500);