在C ++中将fstream对象作为函数参数传递,导致文件截断

时间:2015-01-25 17:54:17

标签: c++ fstream ifstream

我正在尝试将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

0 个答案:

没有答案