stringstream 是 C++ 中用于字符串处理的库,它允许你将字符串作为流来处理,可以进行字符串的读取、写入和格式化等操作。stringstream 通常用于在字符串和不同数据类型之间进行转换,尤其是在需要将多个数据类型组合成一个字符串或者从字符串中解析出不同数据类型时。
以下是一些 stringstream 的基本用法:
- 创建 stringstream 对象:
std::stringstream ss;
- 写入数据:
ss << "Hello, " << "World!" << std::endl;
- 读取数据:
std::string str; ss >> str; // 读取一个单词(以空格为分隔符)
- 获取字符串内容:
std::string content = ss.str();
- 清除内容:
ss.str(std::string());
- 格式化输出:
ss << std::setw(10) << std::setprecision(2) << 3.14159;
- 类型转换:
int i = 123; ss << i; double d; ss >> d; // i 被转换为字符串,然后被解析回 double
- 处理错误:
if (ss.fail()) { // 处理错误 }
- 使用 getline 读取一行文本:
std::string line; std::getline(ss, line); // 读取一行文本,直到遇到换行符
- 使用 ignore 跳过特定字符:
ss.ignore(10, ' '); // 跳过接下来的 10 个字符,直到遇到空格
stringstream 的一个常见用途是在程序中构建复杂的字符串,尤其是在需要将多个不同类型的数据组合成一个字符串时。例如,你可能需要将一个整数、浮点数和字符串组合成一个格式化的输出,这时候 stringstream 就非常有用。