Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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++ 传递指针-用于写入流_C++_Pointers_Reference_Stream - Fatal编程技术网

C++ 传递指针-用于写入流

C++ 传递指针-用于写入流,c++,pointers,reference,stream,C++,Pointers,Reference,Stream,请原谅我的无知。。我知道一点,但不知怎么的,基本知识还是模糊不清!?!你能考虑一下这个简单的例子并告诉我把日志消息传递给'RealelgFix'?的最好方法吗? void writeLogFile (ofstream *logStream_ptr) { FILE* file; errno_t err; //will check this and put in an if statement later.. err = fopen_s(&file,

请原谅我的无知。。我知道一点,但不知怎么的,基本知识还是模糊不清!?!你能考虑一下这个简单的例子并告诉我把日志消息传递给'RealelgFix'?

的最好方法吗?
void writeLogFile (ofstream *logStream_ptr) 
{  
    FILE* file;
    errno_t err;

    //will check this and put in an if statement later..
    err = fopen_s(&file, logFileName, "w+" );


    //MAIN PROB:how can I write the data passed to this function into a file??

    fwrite(logStream_ptr, sizeof(char), sizeof(logStream_ptr), file);


    fclose(file);

}

int _tmain(int argc, _TCHAR* argv[])
{

    logStream <<"someText";

    writeLogFile(&logStream); //this is not correct, but I'm not sure how to fix it

    return 0;
}
void writeLogFile(ofstream*logStream\u ptr)
{  
文件*文件;
错误没有错误;
//将对此进行检查,并在稍后输入if语句。。
err=fopen_s(&file,logFileName,“w+”);
//主要问题:如何将传递到此函数的数据写入文件??
fwrite(logStream_ptr、sizeof(char)、sizeof(logStream_ptr)、file);
fclose(文件);
}
int _tmain(int argc,_TCHAR*argv[]
{

logStream而不是stream的
您需要使用
文件
类型

void writeLogFile ( FILE* file_ptr, const char* logBuffer ) 
{  
   fwrite(logBuffer,1, sizeof(LOG_BUF_MAX_SIZE), file);
}

int _tmain(int argc, _TCHAR* argv[])
{
    writeLogFile(m_pLogFile, "Output"); 
    return 0;
}
在哪里

m_pLogFile = fopen("MyLogFile.txt", "w+");
m_oLogOstream( "MyLogFile.txt" );
或者您只能使用流。

void writeLogFile ( const char* logBuffer ) 
{  
   m_oLogOstream << logBuffer << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
    writeLogFile("Output"); 
    return 0;
}
根据下面的评论您似乎想做的是:

void writeLogFile ( const char* output) 
{  
    fwrite(output, 1, strlen(output), m_pFilePtr);
}

int _tmain(int argc, _TCHAR* argv[])
{
    stringstream ss(stringstream::in);
    ss << "Received " << argc << " command line args\n";
    writeLogFile(m_pLogFile, ss.str().c_str() ); 
    return 0;
}
void writeLogFile(常量字符*输出)
{  
fwrite(输出,1,strlen(输出),m_pFilePtr);
}
int _tmain(int argc,_TCHAR*argv[]
{
stringstream ss(stringstream::in);

ss您正在混合标准函数(
fopen
/
fwrite
/etc)还有,如果
logStream\u ptr
是一个指向打开文件流的指针,为什么要打开另一个文件?向我们展示你的实际代码。同时尝试编辑你的问题,以便更清楚地了解问题所在。你希望你的
writeLogFile
函数做什么?谢谢大家。我正在尝试创建一个lOG是从我的C++和它的C代码访问的。真正的WruteToLoG函数会有外部的“C”,并且不能使用C++流(我想?)所以我认为我最好的选择是跟随@丹尼斯并使用缓冲区……但是,这可能过于复杂。如果你有很多C++和C的标准,你会把什么传递给一个日志记录函数,以便它可以保存到文件?只需在C++包装器中使用一个字符串流来格式化<代码>字符串< /C> >然后得到<代码> char *<代码>通过使用
c_str()方法。你可以把它传递给<代码>写文件> /Cuff>函数。我不知道这是什么,但是这不是正确的C++。没有理由使用<代码>文件>代码>一个流,这个代码做的和OP的代码应该完全不同。使用C风格代码和C++风格代码中的CuleLoGfile。我的代码也与原始代码完全相同(将文件写入字符串).我不知道你的反对意见是什么。至于提供一个带有文件指针的选项,这只是因为他试图使用fwrite、fopen等…我正在演示如何使用它。@Dennis Gaaah,你是对的。我没有看到你答案的第一个版本,也没有看到OP对此的评论。