c ++ - 从不同的cpp文件写入输出文件

时间:2012-11-22 18:02:42

标签: c++ file ofstream

我们有三个diffrenet .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再次写入

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

random.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";
}

studentCS.cpp

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

但请记住,您应尽量避免打开/关闭操作,因为CPU很重要。

答案 2 :(得分:0)

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

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

另一种想法......

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

相关问题