gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 00:04:55 25 4
gpt4 key购买 nike

我正在尝试制作一个函数,该函数采用数组“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com