C++中生成数字序号形式的字符串
使用 stringstream
类处理字符串流
需要读入连续的文件,参考网上用 stringstream
处理字符串的方法,写了下面这个小函数,生成数字序号形式的字符串,用 0 补位。
std::string getStringIndexFromInt(int index, int minLen)
{
std::stringstream strm;
strm<<index;
std::string str = strm.str();
while(str.length() < minLen){
str = "0" + str;
}
return str;
}
用 stringstream
可以实现任意类型与字符串之间的转换。
下面的程序来自《C++编程思想》第二卷 (C05:StringConv.h)
#include <string>
#include <sstream>
template<typename T> T fromString(const std::string& s) {
std::istringstream is(s);
T t;
is >> t;
return t;
}
template<typename T> std::string toString(const T& t) {
std::ostringstream s;
s << t;
return s.str();
}
上面两个模板可以在 string 和任意类型之间实现类型转换。