gpt4 book ai didi

c++ - printf 的 "precision"说明符的类型是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 01:27:04 24 4
gpt4 key购买 nike

假设我使用以下 printf() 说明符字符串:

printf("%.*s", length, str);

它要求 printf()print the first length characters in str .问题是 length 有哪种类型?我在文档中只看到对整数的简短提及。

所以看起来它是int。然后看起来当字符串很长时我不能使用下面的代码:

const char* startOfString = ...    
const char* middleOfString = ...
printf("%.*s", (int)( middleOfString - startOfString ), startOfString);

看起来我不能以这种方式输出超过 INT_MAX 个字符。

那么哪种类型是精度?是 int 还是 size_t 还是其他?

最佳答案

它是一个 int,并且您不能以这种方式打印超过 INT_MAX 个字符。

来自 C 标准,§ 7.21.6.1,段落。 5:

a field width, or precision, or both, may be indicated by an asterisk. In this case, an int argument supplies the field width or precision.

关于c++ - printf 的 "precision"说明符的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29338581/

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