#include <iostream> #include <sstream> using namespace std; int main() { stringstream mys(ios :: in | ios :: out); std :: string dat("The double value is : 74.79 ."); mys.str(dat); mys.seekg(-7, ios :: end); double val; mys >> val; val = val*val; mys.seekp(-7,ios::end); mys << val; std :: string new_val = mys.str(); cout << new_val; return 0; }
时间: 2024-03-27 20:36:57 浏览: 82
使用include <iostream>时一定要加using namespace std
这段程序使用了 C++ 标准库中的 `stringstream` 类型,它可以将字符串和各种类型的值进行相互转换。
首先,在 `main` 函数中创建了一个 `stringstream` 对象 `mys`,并将其模式设置为 `ios::in|ios::out`,表示既可以进行输入操作,也可以进行输出操作。然后,将字符串 "The double value is : 74.79 ." 存储到 `mys` 中,使用 `seekg` 函数将读取位置移动到字符串末尾的倒数第 7 个字符处,即小数点之前的字符 '9' 处。
接着,定义一个 `double` 类型的变量 `val`,使用 `>>` 操作符从 `mys` 中读取一个 `double` 类型的值,并将其存储到 `val` 中。此时,`val` 的值为 74.79。
然后,将 `val` 的值平方,将写入位置移动到字符串末尾的倒数第 7 个字符处,即小数点之前的字符 '9' 处,使用 `<<` 操作符将 `val` 的新值写入到 `mys` 中。
最后,使用 `str` 函数将 `mys` 中的内容转换为一个 `string` 类型的对象 `new_val`,并将其输出到标准输出流中。程序的输出结果为:
```
The double value is : 5584.24 .
```
可以看到,程序将字符串 "The double value is : 74.79 ." 转换为了 "The double value is : 5584.24 .",并将其输出到控制台。
阅读全文