C++ 为什么文件没有被追加或覆盖?

标签 c++ file

我正在尝试制作一个函数,该函数采用数组“inputLayer[]”并将数组中的每个元素存储在单独的文件中。第一次调用该函数时,它应该创建文件,随后调用它时,它应该将 inputLayer 中的新元素追加到文件末尾。

如果我在单个文件中重复存储单个变量,我会使用如下内容:

fstream recordFile;
recordFile.open ("inputRecord.txt", fstream::in | fstream::out | fstream::app);
recordFile << inputLayer[0] << endl;

过去这对我有用,但现在我有很多变量,我想将它们写入名为“input_0_record.txt”、“input_1_record.txt”等的单个文件。

在下面的代码中,我使用 stringstream 创建文件名,然后使用与上面相同的方法将变量写入文件。

int recordInputVariables(double inputLayer[])
{  
    for(int i = 0; i < inputLayerSize; i ++)
    {
        stringstream ss;
        ss << i;
        string inputNumberString = ss.str();
        string recordFileName = "input_";
        recordFileName.append(inputNumberString);
        recordFileName.append("_record.txt");
        fstream inputRecordFile( recordFileName.c_str() );

        inputRecordFile.open (recordFileName, fstream::in | fstream::out | fstream::app);
        inputRecordFile << inputLayer[i] << endl;
        inputRecordFile.close();

    }

    return 0;
}

但是,当我运行这个文件时,第一次调用函数时会创建文件并将变量写入文件,但随后调用函数时,没有新变量写入文件。

我几乎可以肯定这是我打开文件的方式的问题。任何人都可以发现我做错了什么吗?

最佳答案

 inputRecordFile.open (recordFileName, fstream::out | fstream::app);

不要在此上下文中使用 fstream::in

关于C++ 为什么文件没有被追加或覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36237055/

相关文章:

c++ - 如何在 C++ 中编写内联相互抽象代码?

python读取文件,根据条件抓取行

javascript - 如何使用ajax发送文件?

c - C 二进制文件的位字节顺序和可移植性

c++ - glVertex3f 缩放问题

c# - 如何通过idl中的c++ com接口(interface)从C#传递bool

c++ - .读入实数,直到找到 10 个正值。写出 10 个正数的总和

c++ - 获取 Qt 应用程序中的当前工作目录

c# - RawPrinterHelper 不打印并且不引发错误?

android - 在/sdcard 中创建目录失败