2012-12-10 39 views
0

我怎麼能代替這個itoa更換爲std :: to_string如何

itoa(i, buf, 10); 
    key1.append(buf); 
    key2.append(buf); 
    key3.append(buf); 

std::to_string

itoa是給我這不是在範圍上,它不是標準

部分申報錯誤

我聽說我可以使用std::to_string來製作它的另一個版本我該如何做?

+2

這裏的[參考](http://en.cppreference.com/W/CPP /串/ basic_string的/ to_string)。它甚至包括一個例子。 – chris

+0

問題到底是什麼?不'std :: to_string(i)'解決它?問題是這會創建一個'std :: string',但你需要一個'char *'? – jogojapan

+0

@jogojapan - 只有C++ 11纔有可能? – user93353

回答

4

如果使用C++ 11,可以使用std::to_string

#include <string> 
std::string buf = std::to_string(i); 
key1.append(buf); 
key2.append(buf); 
key3.append(buf); 

,或者你可以只使用std:stringstream

#include <sstream> 
std::stringstream ss; 
ss << i; 
key1.append(ss.str()); 
key2.append(ss.str()); 
key3.append(ss.str()); 
-1

要使用itoa()函數,需要包含stdlib.h文件,然後在使用itoa()時不會看到錯誤。

+1

正如問題所述,'itoa'不是標準的一部分,可能不可用;在這種情況下,你會得到錯誤。 –

相關問題