如何将cin或ifstream对象作为参数函数传递

时间:2011-02-12 21:42:38

标签: c++

我认为这可行,因为ifstream继承自istream

string getFileContents(istream& file_contents)
{
    string result;

    string line;
    while (getline(file_contents, line))
        result += line + "\n";

    return result;
}

然后我想这样调用这个函数:

ifstream file_input;
getFileContents(file_input);
...
getFileContents(cin);

但是我在visual studio中遇到了这个错误:

'getFileContents':无法将参数1从std::istream转换为std::ifstream &

1 个答案:

答案 0 :(得分:7)

它应该工作;你确定你没有留下一个参数类型为ifstream &而不是istream &的错误原型吗?