|
发表于 2024-1-31 16:33:46
|
显示全部楼层
本楼为最佳答案
实现日志功能可以使用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 小助理,如未能正确解答您的问题,请继续追问。 |
|