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

标签 c++ pointers reference stream

请原谅我的无知..我知道一点,但不知怎的,我对基础知识仍然很模糊!?!你能考虑这个简单的例子,并告诉我将日志消息传递给“writeLogFile”的最佳方法吗?

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;
}

最佳答案

您需要使用 FILE 类型,而不是 ofstream

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+");

或者您可以仅使用 ofstreams。

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

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

其他地方

m_oLogOstream( "MyLogFile.txt" );

根据下面的评论您似乎想做的是:

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;
}

请注意,您确实需要比我这里更多的错误检查,因为您正在处理 c 样式字符串和原始指针(指向字符和文件)。

关于c++ - 传递指针 - 用于写入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929104/

相关文章:

c++ - 需要帮助破译 gprof 输出

Java代码 "NumberFormat nf = NumberFormat.getInstance();"

c++ - 使用 Marmalade 开发 Roku 应用程序的可行性如何?

c++ - Linux, openssl : where is THIRTY_TWO_BIT defined?

C:为什么将 int 转换为 float 输出 0.000?

c - 反向存储值(value)?

pointers - Nil指针取消引用尝试将指针复制到指针

java - Java 引用和 C++ 引用有什么区别

c++ - 从类型的右值初始化类型为 ‘std::vector<double>&’ 的非常量引用无效

c++ - C/C++ 中的逻辑运算符及其优先级