gpt4 book ai didi

C++ : ofstream issues

转载 作者:行者123 更新时间:2023-11-30 00:52:20 30 4
gpt4 key购买 nike

谁能告诉我这是怎么回事?

#include <stdio.h>
#include <fstream>
#include <iostream>
#include <sstream>
#include <vector>

class writeManager
{
std::vector<double> valueVector;
std::ofstream ofsFile;

public:

writeManager(void);
void writeOnFile(int);
void openOfsStreams(void);
void closeOfsStreams(void);

};

writeManager::writeManager(void)
{
openOfsStreams();
ofsFile << "FIRST LINE" << std::endl;
closeOfsStreams();
}

void writeManager::writeOnFile(int input)
{
openOfsStreams();

if(ofsFile.good())
{
ofsFile << input << std::endl;
}
else
{
std::cout << "Hey!" << std::endl;
}

ofsFile.close();
}

void writeManager::openOfsStreams(void)
{
ofsFile.open("/home/user/example.txt");
}

void writeManager::closeOfsStreams(void)
{
ofsFile.close();
}

int main()
{
writeManager writeObject;
for (unsigned int i = 0; i!= 5; i++)
{
writeObject.writeOnFile(i);
}
}

我想在文件“example.txt”上看到这个输出

FIRST LINE
0
1
2
3
4

但我只得到

4

PS:没有“嘿!”打印出来。

最佳答案

问题是您多次打开和关闭文件,每次打开文件都会破坏之前存在的内容。

也许你应该只在构造函数中打开文件一次(并且不要在那里关闭文件)。

另一种方法是在“追加”模式下打开文件,但这效率很低,打开文件是一项昂贵的操作。正如 Liho 所建议的那样

ofsFile.open("/home/user/example.txt", std::ofstream::out | std::ofstream::app);

关于C++ : ofstream issues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19333359/

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