C++ 读取一个csv文件
时间: 2023-09-12 18:03:08 浏览: 98
读取CSV文件的方法有很多种,下面给出一种比较简单的方法:
1. 引入头文件
```c++
#include <fstream>
#include <string>
#include <vector>
```
2. 定义变量
```c++
std::ifstream infile("filename.csv");
std::string line;
std::vector<std::vector<std::string>> data;
```
3. 读取文件
```c++
while (std::getline(infile, line)) {
std::vector<std::string> row;
std::string cell;
std::istringstream stream(line);
while (std::getline(stream, cell, ',')) {
row.push_back(cell);
}
data.push_back(row);
}
```
这段代码将CSV文件按行读取,并将每一行按逗号分隔成多个单元格存储到一个二维字符串数组中。你可以根据需要修改分隔符或者文件路径。
相关问题
c++读取特定列csv文件
要读取特定列的 CSV 文件,你可以使用 C++ 的 ifstream 和 getline 函数来逐行读取文件,并使用 stringstream 和 getline 函数来解析每行并提取特定列的数据。
以下是一个示例代码,它读取名为 "data.csv" 的 CSV 文件,并提取第二列的数据:
```cpp
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
ifstream file("data.csv");
vector<string> column2;
string line;
while (getline(file, line))
{
stringstream ss(line);
string data;
// 提取第二列数据
getline(ss, data, ','); // 第一列
getline(ss, data, ','); // 第二列
column2.push_back(data);
}
// 输出第二列数据
for (const auto& data : column2)
{
cout << data << endl;
}
return 0;
}
```
在这个示例代码中,我们将文件名 "data.csv" 作为参数传递给 ifstream 构造函数来打开文件,并使用 getline 函数逐行读取文件。然后,我们使用 stringstream 对每行进行解析,并使用 getline 函数提取第二列数据。最后,我们将第二列数据存储在名为 column2 的 vector 容器中,并输出它们。
请注意,这个示例代码假设 CSV 文件的每行都有相同数量的列,并且没有空行。如果你的 CSV 文件与这个示例代码不同,请根据需要进行修改。
C++ 如何读取把csv文件
您可以使用标准库中的`fstream`和`iostream`来读取csv文件。下面是一个示例代码:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
int main() {
std::ifstream file("example.csv"); // 打开csv文件
std::vector<std::vector<std::string>> data; // 用于存储csv数据
std::string line;
while (std::getline(file, line)) { // 逐行读取文件
std::vector<std::string> row;
std::string cell;
for (char c : line) { // 逐个字符遍历当前行
if (c == ',') { // 根据逗号分割单元格
row.push_back(cell);
cell.clear();
} else {
cell += c;
}
}
row.push_back(cell); // 添加最后一个单元格
data.push_back(row); // 将一行数据添加到二维数组中
}
// 打印读取的数据
for (const auto& row : data) {
for (const auto& cell : row) {
std::cout << cell << " ";
}
std::cout << std::endl;
}
return 0;
}
```
这段代码将读取名为"example.csv"的文件,以逗号作为分隔符,将数据存储在二维字符串向量`data`中,并输出到控制台上。您可以根据实际需要进行修改。
阅读全文