简体   繁体   中英

Getting more than one line from .txt file C++

I want to take more than one line from the data.txt file. I am able to take only the first one. I tried using while loop but it seems that I don't know how to use it in this case.

Edited with while loop:

#include <iostream>
#include <fstream>

using namespace std;

int zapis()
{
    fstream file;
    string text;

    file.open("data.txt", ios::app);
    cout << "Type in text that you would like to store: ";
    getline(cin, text);
    file << text << endl;
    file.close();

    return 0;
}

int odczyt()
{
    fstream file;
    string line;
    int nr_lini = 1;

    file.open("data.txt", ios::in);
    if(file.good()==false)
    {
        cout << "Error occured!";
    }
    else
    {
        while(getline(file, line))
           {
               getline(file, line);
               cout << line;
           }
    }
    file.close();

    return 0;
}

int main()
{
    zapis();
    odczyt();

    return 0;
}

Why call getline twice in your loop? Also pay attention to the semi-colons

 while(getline(file, line));
                           ^

What do you think the semi-colon there does?

This is correct

while (getline(file, line))
{
    cout << line;
}

Your code is correct, just loop through the file. Also, you could make the function void , as it always returns 0 , with you not doing anything with the return value.

void odczyt(){

    fstream file;
    string line;

    file.open("data.txt", ios::in);
    if(!file.good())
    {
        cout << "Error occured!";
    }
    else
    {
        while(getline(file, line);) {  // while text file still has lines, you write the line and read next
            cout << line;
        }
    }
    file.close();
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM