gpt4 book ai didi

c - 避免 printf 精度限制

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:20 25 4
gpt4 key购买 nike

这是一个非常简单的代码

#include <stdio.h>

void main()
{
printf( "\n" );
printf( "%.512x", 0xFFFFFFFF );
printf( "\n" );
}

问题是 - 我需要大于 512 的精度(打印超过 512 个符号)。但似乎有一个限制。如果我用任何更大的值替换 512 - 输出结果不会改变。

我使用 Visual Studio 2008 和 Windows XP。

有什么办法可以避免这个限制吗?

最佳答案

原始的 ANSI C (C.89) 标准仅声明:

The minimum value for the maximum number of characters produced by any conversion shall be 509.

更高版本(C.99 和 C.11)将其扩展到 4095 字节。因此,您的编译器似乎符合 C.89。

作为一种解决方法,您可以在 F 之前打印出您想要的 0 的数量,也许作为一个字符串。

char zeros[1000];
memset(zeros, '0', sizeof(zeros));
zeros[sizeof(zeros)-1] = '\0';

printf("\n%s%x\n", zeros, 0xFFFFFFFF);

关于c - 避免 printf 精度限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23422200/

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