Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将cin或ifstream对象作为参数函数传递_C++ - Fatal编程技术网

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

C++ 如何将cin或ifstream对象作为参数函数传递,c++,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;

我认为这是可行的,因为
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&

它应该可以工作;你确定你没有在一个错误的原型周围留下一个错误的原型,它有C++的一个参数,而不是<代码> iStRAM&?< P> >拉多克:这是一个经典错误,我看到它很多次了,现在我发现它“在飞”<代码> >代码> BTW,如果我的答案解决了你的问题,你可以把它标记为“接受”(谢谢:)。为什么要这样做如果对象类型是ifstream,为什么要传递它,因为ifstream派生自istream。