使用stringstream进行复杂数据格式转换

avatar
作者
猴君
阅读量:0

stringstream 是 C++ 标准库中的一个类,它允许你在内存中读写字符串。你可以使用 stringstream 来解析和生成复杂的数据格式,例如将 JSON 字符串转换为 C++ 对象,或将 CSV 数据转换为二维数组等。

下面是一个简单的示例,展示了如何使用 stringstream 进行复杂数据格式的转换:

  1. 将 JSON 字符串转换为 C++ 对象:
#include <iostream> #include <sstream> #include <string> #include <nlohmann/json.hpp>  using json = nlohmann::json; using namespace std;  int main() {     string json_str = R"(     {         "name": "John",         "age": 30,         "city": "New York"     })";      stringstream ss(json_str);     json j;     ss >> j;      cout << "Name: " << j["name"] << endl;     cout << "Age: " << j["age"] << endl;     cout << "City: " << j["city"] << endl;      return 0; } 
  1. 将 CSV 数据转换为二维数组:
#include <iostream> #include <sstream> #include <string> #include <vector>  using namespace std;  vector<vector<int>> parse_csv(const string& csv_str) {     vector<vector<int>> data;     stringstream ss(csv_str);     string row_str;      while (getline(ss, row_str, ',')) {         vector<int> row;         stringstream row_ss(row_str);         string cell_str;          while (getline(row_ss, cell_str, ' ')) {             row.push_back(stoi(cell_str));         }          data.push_back(row);     }      return data; }  int main() {     string csv_str = R"(     1,2,3     4,5,6     7,8,9     )";      vector<vector<int>> data = parse_csv(csv_str);      for (const auto& row : data) {         for (int num : row) {             cout << num << " ";         }         cout << endl;     }      return 0; } 

这些示例展示了如何使用 stringstream 进行复杂数据格式的转换。你可以根据自己的需求修改这些示例,以处理其他类型的数据格式。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!