逐行读取并通过C ++中的逗号分隔

时间:2016-03-20 21:25:34

标签: c++ readfile

我必须逐行读取.txt文件,并用逗号分隔每行的内容,这样我就可以用每一行创建一个对象。问题是,我已经找到了如何阅读每一行以及如何用一个字符(逗号,点,线等)分隔内容。问题是当我尝试用另一个实现一个时,一切都崩溃了

最终结果应该是如果我在文本中,例如:

135875,John,Smith
460974,Jane,Doe

我读取每一行并用包含每个人的信息的对象创建链接列表,因此在读完每一行后,我可以使用从.txt中提取的数据调用构造函数

user(int ID,String Name,String LastName);

1 个答案:

答案 0 :(得分:0)

您没有显示您的代码,因此我无法知道您的代码有什么问题。但是这里有一个代码片段来读取文件并执行您需要执行的操作。

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>

using namespace std;

int main()
{
    ifstream ifs("test.txt");
    string line;
    while (getline(ifs, line))
    {
        istringstream iss(line);
        int id;
        string tmp,name,lastname;
        getline(iss, tmp, ',');
        // stoi is only supported in c++11
        // Alternatively, you can use id = atoi(tmp.c_str());
        id = stoi(tmp);
        getline(iss, tmp, ',');
        name = tmp;
        getline(iss, tmp, ',');
        lastname = tmp;
        cout << "id: " << id << endl;
        cout << "name: " << name << endl;
        cout << "lastname: " << lastname << endl;
    }
    ifs.close();
    return 0;
}