Read File line by line to variable and loop

user1553142 picture user1553142 · Nov 23, 2012 · Viewed 15.7k times · Source

I have a phone.txt like:

09236235965
09236238566
09238434444
09202645965
09236284567
09236235965
..and so on..

How can I process this data line by line in C++ and add it to a variable.

string phonenum;

I know I have to open the file, but after doing so, what is done to access the next line of the file?

ofstream myfile;
myfile.open ("phone.txt");

and also about the variable, the process will be looped, it will make the phonenum variable the current line its processing from the phone.txt.

Like if the first line is read phonenum is the first line, process everything and loop; now the phonenum is the 2nd line, process everything and loop until the end of the last line of the file.

Please help. I'm really new to C++. Thanks.

Answer

WhozCraig picture WhozCraig · Nov 23, 2012

Read the comments inline please. They will explain what is going on to assist you in learning how this works (hopefully):

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

int main(int argc, char *argv[])
{
    // open the file if present, in read mode.
    std::ifstream fs("phone.txt");
    if (fs.is_open())
    {
        // variable used to extract strings one by one.
        std::string phonenum;

        // extract a string from the input, skipping whitespace
        //  including newlines, tabs, form-feeds, etc. when this
        //  no longer works (eof or bad file, take your pick) the
        //  expression will return false
        while (fs >> phonenum)
        {
            // use your phonenum string here.
            std::cout << phonenum << '\n';
        }

        // close the file.
        fs.close();
    }

    return EXIT_SUCCESS;
}