gpt4 book ai didi

C printf : Is there a way to add text after variable and before spacing?

转载 作者:行者123 更新时间:2023-12-03 20:05:38 24 4
gpt4 key购买 nike

我想使用 printf 创建这样的输出:

Name          Available         Required
------------- ----------------- ---------------
Something 10.1 GiB 2.3 GiB

但是使用内置的间距机制不允许添加测量文本(即 Gb) 变量, 之前 空间。问题是该文本需要包含在间距中。我试过了
"%-12.1f GiB"

将“GiB”放在间距之后。

最佳答案

printf函数不会一次性做到这一点。使用中间字符串。

double gigabytes_avail;
char buf[64];
snprintf(buf, sizeof(buf), "%.1f GB", gigabytes_avail);

printf("%-12s", buf);

如果您正在使用 Visual Studio 及其编译器,您可以考虑使用 sprintf_s()而不是 snprintf() .它们不是相同的功能,而是 sprintf_s()这里很适合。

或者,您可以自己进行填充,因为 printf返回写入的字符数...
int column_width = 15;
double gigabytes_avail;
// Does not handle errors, printf may return -1.
int r = printf("%.1f GB", gigabytes_avail);
for (; r < column_width; r++) {
putchar(' ');
}

顺便提一下,千兆字节的符号是 GB,而不是 Gb。千兆就是千兆。

关于C printf : Is there a way to add text after variable and before spacing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62472111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com