C++ 如何使用ofstream从两个不同的文件写入单个文件(从stream类创建)
我正在使用ofstream写入文件C++ 如何使用ofstream从两个不同的文件写入单个文件(从stream类创建),c++,ios,fstream,ofstream,C++,Ios,Fstream,Ofstream,我正在使用ofstream写入文件 ofstream myfile; myfile.open("test.txt",ios::app); 现在,我希望这个变量“myfile”被两个不同的文件使用。 例:example.cc和example1.cc 我已经在example.cc文件中声明了“myfile”,在调用example1.cc的函数后,我使用相同的名称“myfile”写入相同的文件test.txt。 但我也有错误 #example1.cc 'myfile' was not declare
ofstream myfile;
myfile.open("test.txt",ios::app);
现在,我希望这个变量“myfile”被两个不同的文件使用。
例:example.cc和example1.cc
我已经在example.cc文件中声明了“myfile”,在调用example1.cc的函数后,我使用相同的名称“myfile”写入相同的文件test.txt。
但我也有错误
#example1.cc 'myfile' was not declared in the scope
我知道它不在范围内,但由于我是cpp新手,我不知道如何使同一个文件可用于两个不同的文件
如果我在example1.cc中声明了一个文件,那么它将成为一个新文件。我想我终于明白了您想要实现的目标。您希望从两个不同的源文件(翻译单元)访问一个流。我假设由于你是C++的新手,我建议最简单的解决方案。请不要认为它是最好的,因为它有很多警告。我们有一个包含三个源文件的项目:
foo1.cpp
,foo2.cpp
,main.cpp
:
文件foo1.cpp
#include <fstream>
extern std::ofstream logger;
void foo1()
{
logger << "Foo1 started" << std::endl;
//some stuff
logger << "Foo1 finished" << std::endl;
}
foo1.cpp:
#include "logger.hpp"
void foo1()
{
...
foo2.cpp
#include "logger.hpp"
void foo2()
{
...
Header文件通常仅用于此目的,以将与其他源文件的接口保留在一个位置,以及内嵌函数和模板。如果您想将其用于其他用途,请再想想您没有提供足够的代码来了解发生了什么,但我将冒险猜测一下。尝试在顶部添加
#include
,并在前面放置std::
,如使用它时:std::ofstream myfile非常感谢你。成功了…我很高兴。感谢您提供这篇信息丰富的帖子。:)
#include <fstream>
extern std::ofstream logger;
#include "logger.hpp"
void foo1()
{
...
#include "logger.hpp"
void foo2()
{
...