进入stringstream
值得注意的是 ,每次申明赋值一个stringstream对象后,只能使用一次。所以我这里每一个循环都申明一个新的stringstream对象。
由于n和s的类型在编译期就确定了,所以编译器拥有足够的信息来判断需要哪些转换。<sstream>库中声明的标准类就利用了这一点,自动选择所必需的转换。而且,转换结果保存在stringstream对象的内部缓冲中。你不必担心缓冲区溢出,因为这些对象会根据需要自动分配存储空间。
string到int的转换,然后相反
#include <sstream>
string word;
string out_word;
int a;
while(infile>>word)
{
stringstream ss;
stringstream ss1;
ss << word;
ss >> a;
a = a - 2461254;
ss1 << a;
ss1 >> out_word;
outfile<<out_word<<endl;
}
值得注意的是 ,每次申明赋值一个stringstream对象后,只能使用一次。所以我这里每一个循环都申明一个新的stringstream对象。
至于原因,不清楚。可能是在输入值到stringstream类型缓存中去的时候,因为编译器知道输入值的类型,所以在初始化stringstream类型对象的时候有特定的赋值。不能再次使用。