gpt4 book ai didi

c++ - 将 LARGE_INTEGER 转换为 base 64 字符串

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

我正在使用 QueryPerformanceCounter(); 获取一个数字,用作要包含在文件名中的唯一时间戳。

LARGE_INTEGER performanceCount;
QueryPerformanceCounter(&performanceCount);

我需要编码类型为 LONGperformanceCount.HighPart 和类型为 DWORDperformanceCount.LowPart code> 作为 base64 字符串。然后连接它们并将它们存储在 wstring 变量中。

我怎样才能做到这一点?

最佳答案

为了避免使用带有文件名 (see this question) 的 base64 字符出现问题,使用 base16 的有限字符集可能会更好。即使在 32 位编译中,MS 仍然支持 LARGE_INTEGER 的 QuadPart 成员,所以我们正在使用它。

编辑:根据评论建议,这样做的主要方式应该是使用字符串流:

#include <sstream>
#include <iomanip>

std::wstring LargeIntToString(const LARGE_INTEGER& li)
{
std::wstringstream wss;
wss << hex << setw(16) << setfill(L'0') << li.QuadPart;
return wss.str();
}


int main()
{
LARGE_INTEGER li;
QueryPerformanceCounter(&li);

wcout << LargeIntToString(li) << endl;
return 0;
}

输出(无论如何,当时我在我的机器上运行它)

00000041f40cdd33

关于c++ - 将 LARGE_INTEGER 转换为 base 64 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594052/

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