gpt4 book ai didi

c++ - 带有 "%0*d"的 snprintf,参数太少

转载 作者:搜寻专家 更新时间:2023-10-31 00:19:44 26 4
gpt4 key购买 nike

我需要动态生成如下字符串:

001 / 192

但是,位数不同,因此我必须定义另一个变量,称为 print_width,在本例中为:192 % 10

snprintf ( statusString , 30 , "%0*d / %0*d" , snprintf_width , completed[tid] , total[tid]);

上面的代码提出了一个编译器警告:参数太少,而且不工作

最佳答案

格式中的每个 * 以及每个 d 都需要一个整数宽度参数。您已经提供了必需的 4 个参数中的 3 个,并且您的编译器很友好地告诉您,而不是在运行时产生垃圾。

因此,例如:

if (snprintf(statusString, sizeof(statusString), "%0*d / %0*d", snprintf_width,
completed[tid], snprintf_width, total[tid]) >= sizeof(statusString))
throw "Oops - string was too small for data";

关于c++ - 带有 "%0*d"的 snprintf,参数太少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642217/

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