Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用ofstream从两个不同的文件写入单个文件(从stream类创建)_C++_Ios_Fstream_Ofstream - Fatal编程技术网

C++ 如何使用ofstream从两个不同的文件写入单个文件(从stream类创建)

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写入文件

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()
{
...