c - 如何在不知道总长度的情况下在C中留下填充文本

标签 c

我觉得我问的是一个非常简单的问题,但这里是。我正在使用 while 循环来打印各种文件大小的总长度,并且我知道您可以通过执行类似的操作来左对齐文本,

    printf("%5s ", file_size);

但是,我不知道最大的 file_size 是多少,我需要通过将其左对齐到数字最多的文件来打印所有文件大小。截至目前,我只是假设最大的文件大小只有 5 位数字长。所以我的示例输出如下所示:

    File 1 Size:  46667
    File 2 Size:   5050
    File 3 Size:     21

我需要这样做的原因是因为所需的格式是在打印出文件#大小:后有两个空格。

最佳答案

3 个选项。

1、循环遍历所有文件,找到最长的一个,并使用它

2、选择一个固定尺寸,以适应您愿意的最大尺寸。

3,使其动态,并保持当前的“最大宽度”,如果下一个更长,请更改最大宽度并重新绘制所有列表。

(4) 混合方法是将所有这些结合起来。从一个好的“可能宽度”开始,保留最大宽度,如果任何一个超出,则更新最大宽度并重新绘制全部。

关于c - 如何在不知道总长度的情况下在C中留下填充文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668263/

相关文章:

c - 在 C 中打印时得到 ╠

c - 在 C 中跟踪任务的执行时间(忽略时间任务被挂起)

c - gtk+2.0 哪个小部件用于好友列表?

c - 此值 <stdlib.h> 中的 qsort(浮点二维数组)错误

c - 使用 __thread 时 gdb 优化了值

c - execvp 不会打印 echo 命令

c++ - _chkstk() 函数的目的是什么?

c++ - c 是否优化了 for 循环的检查部分?

有人可以向我解释一下代码的工作原理吗?这段代码应该打印一个数字的反转

c++ - 使用定点代替浮点的快速平方根求逆