C++ 读取c+中的csv文件+;并存储在不同的变量中

C++ 读取c+中的csv文件+;并存储在不同的变量中,c++,csv,fstream,C++,Csv,Fstream,我需要读取一个类似于CSV文件的文件(第一行与文本的其余部分不同) 文件的结构如下,第一行和每行后面都包含一个名字和一个名字: first line Barack Obama Jacques Chirac John Paul-Chouki etc. 我需要使用getline存储不同变量的名称和名字: #include <iostream> #include <fstream> #include <string> using namespace std; i

我需要读取一个类似于CSV文件的文件(第一行与文本的其余部分不同)

文件的结构如下,第一行和每行后面都包含一个名字和一个名字:

first line
Barack Obama
Jacques Chirac
John Paul-Chouki
etc.
我需要使用getline存储不同变量的名称和名字:

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

int main() {


    //open file with ifstream (with full path)
    ifstream file("file.txt");
    string line;
    string lineContent;
    string firstname;
    string name;
    int i=1;


    //check if file is really open
    if ( ! file.is_open() ) {
        cout <<" Failed to open" << endl;
    }
    else {
        cout <<"Opened OK" << endl;
    }

    while(file >> line) {
        if(i == 1)
            cout << "1st line==> "+line << endl;
        else
            getline(file,line, ' ');
            cout << "result==> "+line << endl;
        i++;
    }
}
#包括
#包括
#包括
使用名称空间std;
int main(){
//使用ifstream打开文件(具有完整路径)
ifstream文件(“file.txt”);
弦线;
字符串行内容;
字符串名;
字符串名;
int i=1;
//检查文件是否真的打开了
如果(!file.is_open()){

问题是
文件>>行
获取行(文件,行“”)
都读取文件

试着说:

...
while(getline(file,line)) {
    if(i == 1)
        cout << "1st line==> "+line << endl;  // ignore first line
    else {    // read data
        string firstname, lastname;
        stringstream sst(line); 
        sst >> firstname >> lastname; 
        cout << "result==> "<< firstname<<" "<<lastname << endl;
        // where to store the data ? 
    }  
    i++;
}

“它不起作用”是对您所编写的代码的问题的一个非常不充分的描述。请阅读,了解您的问题需要包括哪些内容。
    getline(getline (sst, firstname, ','),lastname, ',');