ostringstream(如何打开文件内容,用ifstream)
一、string转int的原理
一、string转int的方式
采用最原始的string,然后按照十进制的特点进行算术运算得到int,但是这种方式太麻烦,这里不介绍了。
采用标准库中atoi函数。
strings="12";
inta=atoi(s.c_str());
对于其他类型也都有相应的标准库函数,比如浮点型atof(),long型atol()等等。
采用sstream头文件中定义的字符串流对象来实现转换。
istringstreamis("12");//构造输入字符串流,流的内容初始化为“12”的字符串
inti;
is>>i;//从is流中读入一个int整数存入i中
二、int转string的方式
采用标准库中的to_string函数。
inti=12;
cout<<std::to_string(i)<<endl;
不需要包含任何头文件,应该是在utility中,但无需包含,直接使用,还定义任何其他内置类型转为string的重载函数,很方便。
采用sstream中定义的字符串流对象来实现。
ostringstreamos;//构造一个输出字符串流,流内容为空
inti=12;
os<<i;//向输出字符串流中输出int整数i的内容
cout<<os.str()<<endl;//利用字符串流的str函数获取流中的内容
字符串流对象的str函数对于istringstream和ostringstream都适用,都可以获取流中的内容。
二、如何打开文件内容,用ifstream
对于不大的文件(小于1M),建议一次性读取,较大的文件建议使用内存映射。C++有一个成例,读取文本文件为字符串(二进制文件需要一些技巧),我认为比较快。
ifstreamin("filename");ostringstreamout;out<<in.buf();//关键,直接读取bufout.str();//输出字符串。内存映射可以使用boost库。