我正在尝试将fstream
对象作为函数参数传递。我有一个文件"testing.txt"
,我想使用以下代码打开文件:
#include <iostream>
#include <fstream>
using namespace std;
void myFunc(fstream &myFile, char* filename)
{
myFile.open(filename, 'r');
if (!myFile)
{
perror("Something went wrong");
exit(0);
}
}
int main()
{
fstream myFile;
myFunc(myFile, "testing.txt");
//DO SOMETHING HERE WITH THE OPENED FILE
//AND CLOSE THE FILE IN THE END
system("pause");
return 0;
}
我在"testing.txt"
,file size = 93 Bytes
中输入并保存了一些字词。但运行此代码后,文件中的所有内容都会消失,文件大小将变为0 Bytes
。就像,文件中存在的任何内容现在都被丢弃了。因此这个文件变得无用。我也试过传递ifstream object
而不是fstream object
,但没有运气。 我错过了什么,或者犯了错误,请帮我弄清楚。
PS:我需要一个打开文件并查找错误的函数,我在项目中打开了几个文件。
PPS:我在stackoverflow
上遇到了类似的问题,但没有人遇到过这个问题。文件大小(如上所述)如Windows资源管理器中所示。我在Windows 8.1上使用Visual Studio 2013