【问题标题】:How to define an ofstream variable in an header file c++如何在头文件c ++中定义ofstream变量
【发布时间】:2015-02-09 09:52:16
【问题描述】:

我有多个源文件和头文件。他们是;

main.cpp tools.cpp hh.cpp fitness.cpp

tools.h hh.h fitness.h

我想在tools.h 中定义一个ofstream tools.h 包含在所有其他源文件中。但是当我将std::ofstream myOutput; 添加到tools.h 中时,它会显示“myOutput 的多重定义”。但是,没有关于 myOutput 变量的任何其他行。 如果我能正确定义它,那么我想做myOutput.open("observe.txt",std::ofstream::app);。

【问题讨论】:

  • 相关的 sn-p 代码会很有帮助。
  • @ShauryaChats 这是我的代码:stackoverflow.com/questions/28377741/…
  • tools.h 中有extern std::ofstream myOutput;,tools.cpp 中有std::ofstream MyOutput;。确保它们被相同的 namespace xyz { } 块包围(如果适用),或者在 .cpp ala std::ofstream myNamespace::MyOutput; 中添加命名空间作为前缀也就是说,它实际上是一个全局变量,有点代码味道 -如果可能的话,将它创建为需要它的函数中的本地堆栈托管变量,尽管这对于应用程序范围的日志文件之类的东西可能是不切实际的。
  • @TonyD 谢谢。有效。我需要它只是为了收集一些数据。然后我会删除它。所以它是全局的还是局部的并不重要。再次感谢。
  • @TonyD 完成。谢谢你。

标签: c++ text header ofstream


【解决方案1】:

放 extern std::ofstream myOutput; 在 tools.h 中,和 std::ofstream MyOutput; 在工具.cpp 中。 另外,放 #include <fstream> 在工具.cpp 中。 不使用 std:: 输入该行 using namespace std; 在这两个文件中。 打开文件的代码在main.cpp中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2018-12-10
    相关资源
    最近更新 更多