c++ - 能帮我具体解释一下这一串代码什么意思吗?

浏览:29日期:2023-05-19

问题描述

#include <iostream> #include <string> #include <sstream> using namespace std; //C++方法:将数值转换为 string string convertToString(double x) { ostringstream o; if (o << x) return o.str(); return 'conversion error';//if error } //C++方法:将 string 转换为数值double convertFromString(const string &s) { istringstream i(s); double x; if (i >> x) return x; return 0.0;//if error } int main(int argc, char* argv[]) { //将数值转换为 string 的第一种方法:C 方法 char b[10]; string a; sprintf(b,'%d',1975); a=b; cout<<a<<endl; //将数值转换为 string 的第二种方法:C++方法 string cc=convertToString(1976); cout<<cc<<endl; //将 string 转换为数值的方法:C++方法 string dd='2006'; int p=convertFromString(dd)+2; cout<<p<<endl; return 0; }

问题解答

回答1:

stringstream就是字符串流,类似与iostream中的cout cin

istringstream类似与cin, 只不过它输入数据的来源来自内部的stirng buffer,你可以设置这个buffer的值,然后把里面的值输出到你需要的变量里面

istringstream iss(str_in_buffer);// 类比 cin cin可以看成是 istream cin(stdin)iss >> someint; //类比 cin cin >> someint;

ostringstream类似与cout, 不过输入到ostringstream中的数据不会输出到标准输出(stdout, 比如终端)里面,而是存在一个string类型的buffer中,然后你可以使用.str提取处这个buffer的值

类比与上面cin和istringstream类似

回答2:

有点萌啊,建议代码用markdown格式框起来。另外这N串代码的意思,都在注释里面说的很清楚了,不认真看的话,写注释的人会伤心的啊!

相关文章: