实现日志功能可以使用C++的文件流来实现。下面是一个简单的示例代码:
#include <iostream>
#include <fstream>
void WriteLog(const char* fileName, const char* format, ...)
{
// 打开文件
std::ofstream file(fileName, std::ios::app);
if (!file)
{
std::cout << "无法打开文件!" << std::endl;
return;
}
// 定义可变参数列表
va_list args;
va_start(args, format);
// 格式化字符串
char buffer[256];
vsnprintf(buffer, sizeof(buffer), format, args);
// 写入文件
file << buffer << std::endl;
// 关闭文件
file.close();
// 清理可变参数列表
va_end(args);
}
int main()
{
WriteLog("log.txt", "这是一条日志");
WriteLog("log.txt", "这是第%d条日志", 2);
WriteLog("log.txt", "这是一个浮点数:%f", 3.14);
return 0;
}
这个示例代码中的WriteLog函数使用了可变参数列表和文件流来实现日志写入功能。它接受一个文件名和一个格式字符串作为参数,然后将格式化后的字符串写入文件。在main函数中调用WriteLog函数来写入不同格式的日志信息。
需要注意的是,这里使用了vsprintf函数来格式化字符串,并使用ofstream的构造函数以append模式打开文件,这意味着每次调用WriteLog函数时会将日志写入文件的末尾。如果需要创建新的日志文件,请使用std::ios::trunc模式打开文件。
希望能对你有所帮助!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |