赞
踩
在 C++ 中,std::stringstream 类可以用来进行字符串流的输入输出,将字符串和其他类型的数据进行转换。
- #include <iostream>
- #include <sstream>
-
- int main() {
- // 将整数转换为字符串
- int num = 123;
- std::stringstream ss;
- ss << num;
- std::string numStr = ss.str();
-
- std::cout << "Integer to String: " << numStr << "\n";
-
- // 将字符串转换为整数
- std::string str = "456";
- int parsedNum;
- ss.clear(); // 重置状态
- ss.str(str); // 设置要解析的字符串
- ss >> parsedNum;
-
- std::cout << "String to Integer: " << parsedNum << "\n";
-
- return 0;
- }
在实际项目中,这个在读取文件时,赋值给结构体用得比较多,如下例子:
- #include <iostream>
- #include <sstream>
- #include <string>
-
- using namespace std;
-
- struct RecvStruct {
- string stringVal1;
- string stringVal2;
- int intVal1;
- float floatVal1;
- };
-
- std::ostream & operator<<(std::ostream& os, const RecvStruct& r) {
- os << r.floatVal1 << " " << r.intVal1 << " " << r.stringVal1 << " " << r.stringVal2 << endl;
- return os;
- }
-
- int main() {
-
- // 格式化赋值
- string rowLine = "IT1995 AAAA 110 268.11 570176391@qq.com www.it1995.cn";
- stringstream ss(rowLine);
- string notUse;
-
-
- RecvStruct *recvStruct = new RecvStruct();
- ss >> recvStruct->stringVal1 >> notUse >> recvStruct->intVal1
- >> recvStruct->floatVal1 >> recvStruct->stringVal2 >> notUse;
-
- cout << *recvStruct << endl;
- delete recvStruct;
-
- getchar();
- return 0;
- }
运行截图如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。