c++将LARGE_INTEGER转换为String

C++ Convert LARGE_INTEGER to String

本文关键字:转换 String INTEGER LARGE c++      更新时间:2023-10-16

我得到了一个更大的整数它是由一个运算

形成的
__int64 c = (bytesTransferred.HighPart*2^31 + bytesTransferred.LowPart) * 100/(fileSize.HighPart*2^31 + bytesTransferred.LowPart);

如何将其转换为字符串以显示在消息框中?我试着:

std::string percent;
std::stringstream strstream;
strstream << c;
strstream >> percent;

但是没有成功

std::string to_string( long long value );

<string>
中定义http://en.cppreference.com/w/cpp/string/basic_string/to_string

Maybe:

 std::stringstream strstream;
 strstream << c;
 std::string percent(strstream.str());

或者试着看看_i64toa()函数

首先你的计算似乎是错误的:我猜最右边的部分是fileSize.LowPart而不是bytesTransferred.LowPart。计算c的更好方法是

#include <cstdint>
int64_t c = (bytesTransferred.QuadPart * 100) / fileSize.QuadPart;

如果要转换为字符串,你可以这样做:

std::stringstream ss;
ss << c;
std::string percent = ss.str();

您的字符串转换没有问题,您的LARGE_INTEGER数学有问题。试试这个:

__int64 c = (bytesTransferred.QuadPart * 100) / (fileSize.QuadPart)