[英]converting _int64 to a string
提供API時遇到問題
如果我要求他們給我一個_int64
10位十六進制數字,但是我的函數在內部使用字符串,該如何有效地將其轉換為...
截至目前,我只是在內部使用字符串,但出於兼容性原因,我在使用char*
c樣式,因此給任何系統32或64都沒有關系。 那是正確的事情嗎? 還是我錯了?
使用char*
vs _int64
是否有問題?
#include <string>
#include <sstream>
int main()
{
std::stringstream stream;
__int64 value(1000000000);
stream << value;
std::string strValue(stream.str());
return 0;
}
C ++ 11標准化了std::to_string
函數:
#include <string>
int main()
{
int64_t value = 128;
std::string asString = std::to_string(value);
return 0;
}
最好的選擇是將函數更改為不再使用字符串,以便可以按原樣傳遞原始__int64。 __int64在32位和64位系統中的工作原理相同。
如果必須轉換為字符串,則有幾種選擇。 史蒂夫(Steve)向您展示了如何使用字符串流,這是C ++的實現方式。 您還可以使用C sprintf()或_i64toa()函數:
__int64 value = ...;
char buffer[20];
sprintf(buffer, "%Ld", value);
__int64 value = ...;
char buffer[20];
_i64toa(value, buffer, 10);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.