阅读量:0
std::stringstream
是 C++ 标准库中的一个类,它允许你将字符串视为流对象进行操作
- 字符串拼接:
#include<iostream> #include <sstream> #include<string> int main() { std::stringstream ss; ss << "Hello, " << "World!"<< std::ends; std::string str = ss.str(); std::cout<< str<< std::endl; return 0; }
- 字符串分割:
#include<iostream> #include <sstream> #include<vector> #include<string> int main() { std::string input = "C++ is a general-purpose programming language."; std::istringstream iss(input); std::vector<std::string> words; std::string word; while (iss >> word) { words.push_back(word); } for (const auto& w : words) { std::cout << w << std::endl; } return 0; }
- 数值与字符串之间的转换:
#include<iostream> #include <sstream> #include<string> int main() { int num = 42; std::stringstream ss; ss<< num; std::string num_str = ss.str(); std::cout << "Number as string: "<< num_str<< std::endl; double dnum = 3.14; ss.str(""); // 清空 stringstream ss << dnum; std::string dnum_str = ss.str(); std::cout << "Double as string: " << dnum_str<< std::endl; return 0; }
- 从文件中读取并解析数据:
#include<iostream> #include <fstream> #include <sstream> #include<string> #include<vector> int main() { std::ifstream file("data.txt"); std::string line; std::vector<int> numbers; while (std::getline(file, line)) { std::istringstream iss(line); int num; while (iss >> num) { numbers.push_back(num); } } for (const auto& n : numbers) { std::cout << n << std::endl; } return 0; }
这些示例展示了 std::stringstream
在 C++ 中的一些常见应用。通过使用 std::stringstream
,你可以方便地处理字符串和其他数据类型之间的转换,以及对字符串进行分割、拼接等操作。