在C++中,stringstream 是一个用于处理字符串流的类,它定义在 <sstream> 头文件中。stringstream 提供了方便的方法来在字符串和各种数据类型之间进行转换,以及对字符串进行格式化输入输出操作。以下是 stringstream 的常见用法:
1. 包含头文件
首先,需要包含 <sstream>头文件,以使用 stringstream 类:
#include <sstream>
2. 声明 stringstream 对象
可以声明一个 stringstream 对象,用于处理字符串流:
stringstream ss;
3. 向 stringstream 写入数据
使用 << 运算符可以将各种数据类型的值写入 stringstream 中:
int num = 123;
double pi = 3.14159;
tring str = "Hello, ";
ss << str << num << " and " << pi;
4. 从 stringstream 读取数据
使用 >> 运算符可以从 stringstream 中读取数据到变量中:
tring result;
ss >> result;
cout << result <<endl; // 输出: Hello, 123 and 3.14159
5. 将 stringstream 内容转换为字符串
可以使用 str() 成员函数将 stringstream 中的内容转换为一个 string:
stringstream ss;
ss << "This is a test.";
string str = ss.str();
cout << str << endl; // 输出: This is a test.
6. 清空stringstream
可以使用 str("") 方法清空 stringstream 的内容:
stringstream ss;
ss << "Some data";
ss.str(""); // 清空 stringstream
7. 字符串分割
stringstream 还可以用于字符串分割,通过将字符串输入到 stringstream 中,然后使用 >> 运算符逐个读取分割后的部分:
string input = "apple banana cherry";
stringstream ss(input);
string token;
while (ss >> token) {
cout << token << endl;
}
// 输出:
// apple
// banana
// cherry
8. 类型转换
stringstream 常用于不同数据类型之间的转换,例如将字符串转换为数字,或将数字转换为字符串:
// 将字符串转换为数字
string numStr = "42";
int num;
stringstream( numStr ) >> num;
cout << num << endl; // 输出: 42
// 将数字转换为字符串
int number = 100;
stringstream ss;
ss << number;
string resultStr = ss.str();
cout << resultStr << endl; // 输出: 100
通过这些方法,stringstream 为处理字符串和数据类型转换提供了强大而灵活的工具。