gpt4 book ai didi

c - 在 C 中用空格格式化输出

转载 作者:太空狗 更新时间:2023-10-29 16:01:45 24 4
gpt4 key购买 nike

假设我有一个数值变量,我想使用 10 个字符打印它,如下所示:XXX XXXX XXX XXXX。因此,例如,数字 10 将打印为 000 0000 000 0010

我以最直接的方式得到的最接近的是使用,例如:

int value = 10;

printf("%010D", value);

无论它如何产生,显然:

0000000010

谁知道有没有内置函数可以输出

000 0000 000 0010

还是有必要实现一个?

提前致谢

最佳答案

首先请注意,32 位 int 的最大值为 2,147,483,647。所以 14 位数字是不可能的(除非至少有 4 个前导零)。你需要一个 64 位的 long long int 来获得 14 个非零数字。

没有允许它的简单库调用,但实现它并不难。一种方法是用整数数学拆分值。另一种是拆分字符串:

int main(void) {

long long int value = 12345678901234;

// by string splitting...
char buf[32];
sprintf(buf, "%014lld", value);
printf("%.3s %.4s %.3s %.4s\n", buf, buf + 3, buf + 7, buf + 10);

// by integer modular arithmetic...
unsigned v0 = (unsigned)(value % 10000);
value /= 10000;
unsigned v1 = (unsigned)(value % 1000);
value /= 1000;
unsigned v2 = (unsigned)(value % 10000);
value /= 10000;
unsigned v3 = (unsigned)value;
printf("%03u %04u %03u %04u\n", v3, v2, v1, v0);

return 0;
}

关于c - 在 C 中用空格格式化输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23001018/

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