在C++中读取CSV文件中的特定行

Reading a specific row in CSV file in C++

本文关键字:CSV C++ 读取 文件      更新时间:2024-09-24

我正在编写一个C++代码,该代码将读取CSV文件上的特定行,我成功地读取了整个文件,代码如下:

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main() {
    ifstream myFile;
    myFile.open("test.csv");
    while (myFile.good()) {
        string line;
        getline(myFile, line, ',');
        cout << line << endl;
    }
}

代码会给我csv文件中的每个值,但我希望文件中只有一个特定行的值。我做了一些研究,但不确定如何真正做到这一点

假设在我的CSV文件中有:

1 2 3 4 5
6 7 8 9 0

我当前的代码会给我

1
2
3
4
5
6
7
8
9
0

结果,但我只想要一个像67890这样的特定行作为结果。

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main() {
    ifstream myFile;
    myFile.open("test.csv");
    string line;
    int n = 2;//desired row number
    int a = 0;//counter

    while (getline(myFile, line)) {
        a++;
        if (a == n) {
            cout << line << endl;
            break;
        }
    }
}

多亏了Martin York的评论,我才知道,这样我就可以逐行输出代码了。通过添加条件,代码将只显示CSV文件中的一行数据。

您应该使用seek方法将文件指针查找到正确的行,然后读取该行。这将比你一行一行地读到目标行要好。示例代码:在C++中,有没有一种方法可以转到文本文件中的特定行?