【发布时间】:2015-02-09 14:28:02
【问题描述】:
// 我试图通过在 main 中调用函数并将文件名作为参数传递来读取函数内的文件。打开文件时出错。但是当我直接传递文件名文件(“file_name”)时,同样可以正常工作。为什么会这样?提前致谢。
#include<string>
#include<fstream>
void parse(string file_name)
{
ifstream file("file_name"); //opens file
if (!file)
{
cout<<"Cannot open file\n";
return;
}
cout<<"File is opened\n";
file.close(); //closes file
}
int main()
{
parse("abc.txt"); //calls the parse function
return;
}
【问题讨论】:
-
ifstream file("file_name");表示打开一个名为"file_name"的文件,而不是变量file_name的内容。如果您在传递std::string时收到错误消息并且未使用C++11,您可能需要使用file_name.c_str()。只是猜测,因为您没有在问题中发布实际错误。 -
谢谢忍者。有什么可以替代的?如果我想读取文件夹中的所有文件怎么办?