所以如果我有像
这样的输出Hello How are you 500
Halllo 500
那个“500”总是应该存在于那个特定的位置,无论它面前需要放什么?
我尝试过添加
之类的内容printf ("10%d", w.e);
printf ("\t\t%d", w.e);
但是“hello how are you”和“hallo”这样的词总是影响它并沿着同一条线进一步移动。如何将500输出始终放在一个位置?
答案 0 :(得分:6)
您需要右键填充前一个词,即Hello How are you
和Halllo
。填充后,500
将始终以相同的位置开始。
您可以将字符串填充为:
printf("%-30s", "Hello How are you");
printf("%-30s", "Halllo");
这将为字符串分配30个字符长度。您的电话号码将在下一个电话号码之后。
答案 1 :(得分:1)
您可以使用printf指定前导字符串应占用的最小字符数,就像格式化数值时一样。
实际上,您可以在一次调用printf(伪代码)中打印两者:
format_string = "%-30s%5.0d";
leading_text = "hello";
number = 500;
printf(format_string, leading_text, number);
答案 2 :(得分:1)
这样的事情?
printf("%-50s%d\n", "Hello How are you", 500);
printf("%-50s%d\n", "Halllo", 500);
打印出来:
Hello How are you 500
Halllo 500
答案 3 :(得分:1)
这是另一种可能更灵活的方式:
printf("%*d\n", 50-printf("Halllo"), 500);