Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to properly read data from CSV file in C++

My input file userinfo.csv contains username and password in this format username,password shown below.

frierodablerbyo,Rey4gLmhM
pinkyandluluxo,7$J@XKu[
lifeincolorft,cmps9ufe
spirginti8z,95tcvbku

I want to store all the usernames and passwords in

vector<string> usernames;
vector<string> passwords;

I’ve never used C++ for file handling, only python

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

EDIT1

#include <bits/stdc++.h>
using namespace std;

int main()
{
    fstream myfile;
    myfile.open("small.csv");

    vector<string> data;
    vector<string> usernames, passwords;

    while(myfile.good()){

        string word;
        getline(myfile, word, ',');
        data.push_back(word);
    }
    for(int i=0; i<8; i=i+2){
        usernames.push_back(data[i]);
    }
    for(int i=1; i<8; i=i+2){
        passwords.push_back(data[i]);
    }
}

I know above code is bad, how can I improve it because my actual csv file contains 20000 rows.

>Solution :

You can try something like this

std::vector <std::pair<std::string, std::string>> vec_credentials;

std::ifstream is("credentials.csv");
if(is.is_open())
{
    std::string line;
    while(getline(is, line))
    {
        std::stringstream ss(line);
        std::string token;
        std::vector <std::string> temp;
        // this is good if in the future you will have more than 2 columns
        while(getline(ss, token, ','))
        {
            temp.push_back(token);
        }
        vec_credentials.push_back(std::make_pair(temp[0], temp[1]));
    }
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading