Tyler
Tyler

Reputation: 2063

Trouble with reading/outputting files

I want to open a file for reading then output what is in that .txt file, any suggestion on my code?

string process_word(ifstream &word){
    string line, empty_str = "";
    while (!word.eof()){
        getline(word, line);
        empty_str += line;
    }
    return empty_str;
}

int main(){
    string scrambled_msg = "", input, output, line, word, line1, cnt;
    cout << "input file: ";
    cin >> input;
    ifstream inFile(input);
    cout << process_word(inFile);
}

Upvotes: 0

Views: 55

Answers (2)

David G
David G

Reputation: 96865

Your function can be simplified to:

#include <iterator>

std::string process_word(std::ifstream& word)
{
    return std::string{std::istream_iterator<char>{word},
                       std::istream_iterator<char>{}};
}

int main()
{
    string input;
    std::cin >> input;

    std::ifstream inFile(input);
    std::cout << process_word(inFile);
}

Upvotes: 0

LihO
LihO

Reputation: 42133

Instead of:

while (!word.eof()) {
    getline(word, line);
    empty_str += line;
}

do:

while ( std::getline(word, line) ) {
    empty_str += line;
}

and it would be also wise to give your variables more appropriate names.

Upvotes: 2

Related Questions