例如,用4位數字,將0轉換爲「0000」;和12到「0012」。如何將一個整數轉換爲一個固定數量的C++數字的字符串?
在C++中的任何好方法?
對不起沒有把它清楚,我的編譯器不支持的snprintf,我要像
的std :: string的ToString函數(int值,詮釋digitsCount);
例如,用4位數字,將0轉換爲「0000」;和12到「0012」。如何將一個整數轉換爲一個固定數量的C++數字的字符串?
在C++中的任何好方法?
對不起沒有把它清楚,我的編譯器不支持的snprintf,我要像
的std :: string的ToString函數(int值,詮釋digitsCount);
也許這樣的事情
#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;
}
char buf[5];
snprintf(buf, sizeof(buf), "%04d", intVal);
那裏沒有C標籤.... – Caribou
不,請不要'sprintf()'!如果您使用此功能系列,請使用安全版本! – 2012-12-17 21:01:28
@Caribou這不是問題,'printf()'函數家族在C++中工作得很好,但實際上,應該使用安全變體。 – 2012-12-17 21:02:14
''提供那種格式化功能一樣,葉奧爾德'sprintf'。 –
chris
@chris你的意思是'snprintf()',對不對? – 2012-12-17 21:00:56
@ H2CO3的確,我不使用它,所以我想我可以說謊,並爭辯說我正在談論這組函數的基礎。 – chris