New*_*bie 3 c++ function ifstream
我正在尝试编写一个带ifstream&参数的函数。
void word_transform(ifstream & infile)
{
infile("content.txt");
//etc
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:
类型“ifstream”(又名“basic_ifstream”)不提供调用运算符。
你能帮我看看有什么问题吗?
调用运算符是一个函数,类似于operator()( params )允许使用语法myObject( params )。
因此,当您编写 时infile(...),您是在尝试向我们呼叫接线员。
您要做的是打开一个文件,使用以下open方法:
void word_transform(ifstream & infile)
{
infile.open("content.txt",std::ios_base::in);
if ( infile.is_open() )
infile << "hello";
infile.close();
}
Run Code Online (Sandbox Code Playgroud)
但是,正如所评论的,将 infile 引用传递给这样的函数并没有真正意义。你可以考虑:
void word_transform(istream& infile)
{
infile << "hello";
}
int main()
{
ifstream infile;
infile.open("content.txt",std::ios_base::in);
if ( infile.is_open() )
word_transform( infile );
infile.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
或者:
void word_transform()
{
ifstream infile;
infile.open("content.txt",std::ios_base::in);
if ( infile.is_open() )
infile << "hello";
infile.close();
}
int main()
{
word_transform();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35017 次 |
| 最近记录: |