Search code examples
c++fstreamifstream

Obtaining a certain section from a line in a file (C++)


I've spent a lot of time looking online to find a answer for this, but nothing was helping, so I figured I'd post my specific scenario. I have a .txt file (see below), and I am trying to write a routine that just finds a certain chunk of a certain line (e.g. I want to get the 5 digit number from the second column of the first line). The file opens fine and I'm able to read in the entire thing, but I just don't know how to get certain chunks from a line specifically. Any suggestions? (NOTE: These names and numbers are fictional...)

//main cpp file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    ifstream fin;
    fin.open("customers.txt");



    return 0;
}

//customers.txt
100007     13153     09067.50     George F. Thompson
579489     21895     00565.48     Keith Y. Graham
711366     93468     04602.64     Isabel F. Anderson

Solution

  • Some simple hints in your code to help you, you will need to complete the code. But the missing pieces are easy to find at stackoverflow.

    //main cpp file
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    
    using namespace std;
    
    splitLine(const char* str, vector<string> results){
        // splits str and stores each value in results vector
    }
    
    int main()
    {
        ifstream fin;
        fin.open("customers.txt");
        char buffer[128];
        if(fin.good()){
            while(!fin.eof()){
                fin.getline(buffer, 256);
                cout << buffer << endl;
    
                vector<string> results;         
                splitLine(buffer, results);
                // now results MUST contain 4 strings, for each 
                // column in a line
            }
    
        }
        return 0;
    }