2012-12-17 18 views
0

例如,用4位數字,將0轉換爲「0000」;和12到「0012」。如何將一個整數轉換爲一個固定數量的C++數字的字符串?

在C++中的任何好方法?

對不起沒有把它清楚,我的編譯器不支持的snprintf,我要像

的std :: string的ToString函數(int值,詮釋digitsCount);

+0

''提供那種格式化功能一樣,葉奧爾德'sprintf'。 – chris

+0

@chris你的意思是'snprintf()',對不對? – 2012-12-17 21:00:56

+0

@ H2CO3的確,我不使用它,所以我想我可以說謊,並爭辯說我正在談論這組函數的基礎。 – chris

回答

3

也許這樣的事情

#include <iostream> 
#include <iomanip> 
#include <sstream> 

using namespace std; 

string ToString(int value,int digitsCount) 
{ 
    ostringstream os; 
    os<<setfill('0')<<setw(digitsCount)<<value; 
    return os.str(); 
} 

int main() 
{ 
    cout<<ToString(0,4)<<endl; 
    cout<<ToString(12,4)<<endl; 
} 
4
char buf[5]; 
snprintf(buf, sizeof(buf), "%04d", intVal); 
+0

那裏沒有C標籤.... – Caribou

+0

不,請不要'sprintf()'!如果您使用此功能系列,請使用安全版本! – 2012-12-17 21:01:28

+0

@Caribou這不是問題,'printf()'函數家族在C++中工作得很好,但實際上,應該使用安全變體。 – 2012-12-17 21:02:14

相關問題