0

我们有三个不同的 .cpp 文件。当我在 random.cpp 中创建文件时

    ofstream outfile ("random.log");

然后我在 random.cpp 文件中写入文件 random.log:

    outfile << " something" ;

然后我去一个不同的.cpp文件,比如StudentCS.cpp,我使用以下方法打开文件:

    ofstream outfile;
    outfile.open("random.log",std::ios_base::app);

即使我在 random.cpp 中间调用 StudentCS,它也会在所有 random.cpp 输出之后写入所有 StudentCS 输出。我正在尝试从 random.cpp 写入然后它调用 StudentCS.cpp 应该写一些东西然后回到 random.cpp 再次写入

4

3 回答 3

1

打开文件一次,然后传递流对象。或者更好:使记录器对象可用于任何需要记录的模块。

于 2012-11-22T18:06:43.423 回答
0

随机的.cpp

void studentCS(ofstream & outfile);
void random() {
   ofstream outfile ("random.log");
   outfile << " something" ;
   outfile.close();
   studentCS(outfile);
   outfile.open("random.log",std::ios_base::app);
   outfile << " something write after call to studenCS";
}

学生CS.cpp

void studentCS(ofstream & outfile) {
   ofstream outfile("random.log",std::ios_base::app);
   outfile << " something else ";
}

但请记住,您应该尽量避免打开/关闭操作,这对 CPU 来说很重。

于 2012-11-22T18:09:54.077 回答
0

我看到您使用的名称是“random.log”。

这是否意味着您正在编写日志文件?如果是这样,您可以考虑使用为简化此过程而开发的许多日志记录类之一(请参阅12345)。

另一个想法...

您正在项目的不同部分打开和关闭文件。其他答案建议传递文件指针。但是如果你真的需要从任何地方写入这个文件并采取适当的预防措施,你可以考虑在这里使用一个全局变量。

于 2012-11-22T19:07:03.043 回答