用C++写一段把csv文件里面的两列浮点型数据读取到容器里面
时间: 2023-12-06 21:05:49 浏览: 105
CSV.rar_CSV C++_csv_csv c/c++_it
当然!下面是一个示例代码,它可以读取一个包含两列浮点数的 CSV 文件,并将它们存储在一个容器中:
```cpp
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <utility>
int main() {
std::ifstream file("data.csv");
std::vector<std::pair<double, double>> data;
if (file) {
std::string line;
while (std::getline(file, line)) {
std::istringstream iss(line);
std::string value;
double number1, number2;
if (std::getline(iss, value, ','))
number1 = std::stod(value);
if (std::getline(iss, value, ','))
number2 = std::stod(value);
data.emplace_back(number1, number2);
}
file.close();
// 打印容器中的数据
for (const auto& pair : data) {
std::cout << pair.first << ", " << pair.second << std::endl;
}
} else {
std::cout << "无法打开文件" << std::endl;
}
return 0;
}
```
在这个示例中,我们创建了一个存储两列浮点数的 `std::pair<double, double>` 类型的容器 `data`。我们逐行读取 CSV 文件中的内容,并使用逗号作为分隔符将每行拆分成两个值。然后,我们将这两个值转换为浮点数,并使用 `emplace_back` 函数将它们作为一对插入到容器中。
最后,我们遍历容器,并打印出每对浮点数。
请确保将示例代码中的文件名替换为你实际使用的 CSV 文件的路径和名称。此外,还需要包含 `<iostream>`, `<fstream>`, `<sstream>`, `<vector>` 和 `<utility>` 头文件来使用相应的标准库函数、容器和工具。
阅读全文