生成一个带有时间戳的日志文件,文件名为"maData",保存在"./log/"目录下。日志文件包含两列:整数值(变量a)和相应的双精度值(变量b)。程序在一个循环中运行,向文件写入100行数据。
代码实现如下:
#include <iostream>
#include <sstream>
#include <fstream>
#include <ctime>
#include <iomanip>
int main()
{
int a = 0;
double b = 0;
int i = 0;
// 获取当前日期和时间
std::time_t now = std::time(nullptr);
struct std::tm *current_time = std::localtime(&now);
// 构建日期时间字符串
char buffer[80];
std::strftime(buffer, sizeof(buffer), "%Y%m%d_%H%M%S", current_time);
// 构建新的文件名
std::string new_filename = "./log/maData" + std::string(buffer) + ".txt";
std::ostringstream oss;
oss << new_filename;
std::string filename = oss.str();
// 打开文件
// 以追加方式打开文件
std::ofstream writeFile(filename, std::ios::app);
while (i < 100)
{
// 你的数据
a = i;
b = i * 0.2;
// 将a和b写入文件,以制表符分隔,每行末尾加换行符
writeFile << a << "\t";
writeFile << std::fixed << std::setprecision(4) << b << std::defaultfloat << "\t";
writeFile << "\n";
// 刷新文件缓冲区,确保数据立即写入文件
writeFile.flush();
i++;
}
// 关闭文件
writeFile.close();
return 0;
}