【问题标题】:C++ create ifstream/ofstream in a class, associated with pre-made text fileC++ 在类中创建 ifstream/ofstream,与预制文本文件相关联
【发布时间】:2014-05-28 03:54:37
【问题描述】:

我在将ifstream readofstream print 关联到名为finances.txt 的预制文本文件时遇到问题。这是在一个名为Data 的类中。到目前为止,这是我尝试过的:

我在类头文件中声明了ifstream readofstream print。然后,在cpp文件中:

Data::Data(string n, string d)
:name(n),
date(d)
read(name)
print(name)
{
    cout << "name = " << name << endl;
    read.open(name);
    print.open(name);
    //...
}

我也试过了,没有在标题中声明任何内容:

Data::Data(string n, string d)
:name(n),
date(d)
{
    ifstream read(name);
    ofstream print(name);
    //...

而且只是这种东西的不同变体。语法总是正确的,因为我没有收到任何错误,但是每当它运行时,它就像文件不存在并创建一个名为 finances.txt 的新文件,这反过来又会删除所有文本是在原来的。我以前正确地做到了这一点,只是不记得我做了什么以及我在这里做错了什么。

【问题讨论】:

  • 您需要打开文件进行追加...搜索该文件,您将找到追加到 ofstream 构造函数的必要选项。
  • 同时打开一个文件以在两个不同的 fstream 上读取和写入有点冒险。我不确定这里会发生什么,这可能取决于您的操作系统。

标签: c++ fstream ifstream ofstream


【解决方案1】:

我有点困惑你到底想做什么? 您是否尝试附加到文件?因为当你打电话 ofstream print(name) 您正在覆盖您正在读取的文件。

所以如果你想追加到同一个文件,你必须添加。 fstream::app在ofstream的声明中

【讨论】:

  • @LightnessRacesinOrbit 对这条评论有点困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
相关资源
最近更新 更多