簡體   English   中英

將_int64轉換為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM