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 和任意类型之间实现类型转换。