读取/输出文件有问题

时间:2013-10-13 20:28:43

标签: c++ file ifstream

我想打开一个文件进行阅读,然后输出该.txt文件中的内容,对我的代码有任何建议吗?

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);
}

2 个答案:

答案 0 :(得分:2)

而不是:

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

做的:

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

并且为变量提供更合适的名称也是明智的。

答案 1 :(得分:0)

您的功能可以简化为:

#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);
}