gpt4 book ai didi

c++ - 为 _snprintf/_snwprintf 的 va_list 版本预计算字符串长度

转载 作者:行者123 更新时间:2023-11-30 03:08:00 25 4
gpt4 key购买 nike

是否有以下代码的 va_list 样式版本可以安全地执行非截断 sprintf:

// format a char buffer
int size = 1 + _snprintf(NULL, 0, "%d", 132);
std::vector<char> buffer (size);
sprintf_s(&buffer[0], buffer.size (), "%d", 132);

// format a wchar_t buffer
int wsize = 1 + _snwprintf(NULL, 0, L"%d", 132);
std::vector<wchar_t> wbuffer (wsize);
swprintf_s(&wbuffer[0], wbuffer.size (), L"%d", 132);

据我从文档和实验中可以看出,所有 _vsnprintf 函数都不会返回长度的计算结果,只会截断或生成错误。有替代方案吗?

最佳答案

Visual Studio 提供了 _vscprintf 函数来检查存储结果字符串所需的缓冲区量。

关于c++ - 为 _snprintf/_snwprintf 的 va_list 版本预计算字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470863/

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