实现寻找最近创建的文件并写入数据

c++中实现如下功能:

1.在active函数中实现:创建Profile/###.cvs,其中###代表当前时间

2.在write函数中实现:找到时间最近的cvs文件,写入数据

实现

要在C++中实现这两个功能,可以使用标准库来处理文件操作和时间获取。下面是一个简单的示例代码来展示如何实现这些功能:

  1. active函数:创建Profile/###.csv,其中###代表当前时间。
  2. write函数:找到时间最近的.csv文件,写入数据。

以下是代码示例:

#include <iostream>
#include <fstream>
#include <filesystem>
#include <string>
#include <chrono>
#include <iomanip>
#include <sstream>
#include <vector>
#include <algorithm>

namespace fs = std::filesystem;

// 获取当前时间并格式化为字符串
std::string getCurrentTimeString() {
    auto now = std::chrono::system_clock::now();
    std::time_t now_time = std::chrono::system_clock::to_time_t(now);
    std::tm* tm = std::localtime(&now_time);

    std::ostringstream oss;
    oss << std::put_time(tm, "%Y%m%d%H%M%S");
    return oss.str();
}

// 创建Profile目录并生成当前时间命名的CSV文件
void active() {
    std::string directory = "Profile";
    fs::create_directory(directory);

    std::string filename = directory + "/" + getCurrentTimeString() + ".csv";
    std::ofstream file(filename);
    if (file.is_open()) {
        std::cout << "Created file: " << filename << std::endl;
        file.close();
    } else {
        std::cerr << "Failed to create file: " << filename << std::endl;
    }
}

// 找到时间最近的CSV文件并写入数据
void write(const std::string& data) {
    std::string directory = "Profile";
    std::vector<fs::directory_entry> csv_files;

    for (const auto& entry : fs::directory_iterator(directory)) {
        if (entry.path().extension() == ".csv") {
            csv_files.push_back(entry);
        }
    }

    if (csv_files.empty()) {
        std::cerr << "No CSV files found in the directory." << std::endl;
        return;
    }

    auto latest_file = std::max_element(csv_files.begin(), csv_files.end(),
        [](const fs::directory_entry& a, const fs::directory_entry& b) {
            return fs::last_write_time(a) < fs::last_write_time(b);
        });

    std::ofstream file(latest_file->path(), std::ios_base::app);
    if (file.is_open()) {
        file << data << std::endl;
        std::cout << "Data written to file: " << latest_file->path() << std::endl;
        file.close();
    } else {
        std::cerr << "Failed to open file: " << latest_file->path() << std::endl;
    }
}

int main() {
    active(); // 创建文件
    write("Some sample data"); // 写入数据
    return 0;
}

说明:

  1. getCurrentTimeString函数用于获取当前时间并将其格式化为字符串。
  2. active函数创建一个名为Profile的目录(如果不存在),并在其中创建一个以当前时间命名的CSV文件。
  3. write函数找到Profile目录中最新的CSV文件,并向其中写入数据。

依赖:

  • 需要C++17或更高版本,以便使用<filesystem>库。编译时需要指定C++17标准,例如使用g++编译器:
    g++ -std=c++17 -o my_program my_program.cpp
    

这个示例演示了如何在C++中实现文件创建和数据写入的基本功能,可以根据具体需求进行扩展和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/783926.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

出现d3dcompiler_43.dll缺失我们要怎么修复?教你科学修复d3dcompiler_43.dll

出现d3dcompiler_43.dll缺失其实也算是一种比较常见的dll文件丢失&#xff0c;毕竟现在很多在使用电脑的时候&#xff0c;都会胡乱的下载东西&#xff0c;然后导致电脑中毒&#xff0c;感染到d3dcompiler_43.dll文件&#xff0c;而导致d3dcompiler_43.dll文件被损坏&#xff0c…

docker安装oracle 11g

最近把一些常用数据库都移到docker了&#xff0c;而且是windows下&#xff0c;很是方便。偶尔还是要用一下Oracle&#xff0c;今天就试一下安装oracle 11g 在docker上。 一、搜索并拉取镜像 docker search oracle_11gdocker pull iatebes/oracle_11g二、运行容器和测试连接 …

微信小程序开发-003-首页(轮播图,状态栏,导航栏)

哈喽小伙伴们大家好,我是程序媛小李,今天,我们继续来开发微信小程序. 在这里,先贴上首页的效果图: 整个页面大概可以分为顶部的状态栏区域,轮播图区域,公司信息区域,商品导航区域,商品推荐区域,以及最下面的导航栏区域. 一,底部导航栏 在这里,我们遵循从外到内的原则,我们先来…

小白·使用Tesseract-OCR工具读取图片

1、直接pip安装 工具使用vscode和pycharm都可以。 这里介绍使用vscode的方法。 (1)、调出终端 (2)、安装依赖 (3)、编写代码 import pyocr import pyocr.builders from PIL import Image import re# 获取Tesseract-OCR工具 tools pyocr.get_available_tools() tool tools[…

数据融合工具(3)国家基本比例尺地形图分幅计算

情景再现&#xff0c;呼叫小编 数据获取和使用过程中&#xff0c;经常听到一个名词“分幅图幅号”…… 你的数据是按多大比例尺分幅的&#xff1f;我不知道&#xff0c;就一些字母和数值。 你把G47E018018范围内的数据裁剪提供&#xff0c;这个范围是啥&#xff1f; 你把镶嵌…

Android14之获取包名/类名/服务名(二百二十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

常见的自动化工具开发必备的源代码!

随着科技的飞速发展&#xff0c;自动化工具已经成为我们日常工作中不可或缺的一部分&#xff0c;自动化工具不仅极大地提高了工作效率&#xff0c;还降低了人为错误的可能性。 然而&#xff0c;要想开发出高效、稳定的自动化工具&#xff0c;掌握一些常见的源代码技巧是至关重…

新手入门:无服务器函数和FaaS简介

无服务器&#xff08;Serverless&#xff09;架构的价值在于其成本效益、弹性和扩展性、简化的开发和部署流程、高可用性和可靠性以及使开发者能够专注于业务逻辑。通过自动化资源调配和按需计费&#xff0c;无服务器架构能够降低成本并适应流量变化&#xff0c;同时简化开发流…

【版面费优惠丨ACM独立出版丨接受全文摘要投稿】2024年生物医药和智能技术国际学术会议(ICBIT 2024,8月23-25)

“2024年生物医药和智能技术国际学术会议&#xff08;ICBIT 2024&#xff09;”拟定于2024年8月23-25日于珠海召开。近年来&#xff0c;智能技术已经逐渐走入生物医药领域&#xff0c;并在与生物医药领域的融合创新中凸显出巨大的发展潜力和社会价值。人工智能技术在生物医药领…

工业电脑一体机在高清视频处理中的应用

工业电脑一体机在高清视频处理中的应用广泛&#xff0c;尤其是在需要高性能计算、稳定性和实时处理能力的场景中。以下是工业电脑一体机在高清视频处理中的具体应用&#xff1a; 视频监控与分析&#xff1a; 工业电脑一体机能够处理多个高清视频流&#xff0c;实现实时监控&a…

Stable-diffusion 4.8大模型与Lora

SD大模型与Lora、生成这些图片提示词。下载地址如下。 地址链接&#xff1a;https://pan.baidu.com/s/1rJaH7VvyiBYas9zopj-pFA?pwdzgma 提取码&#xff1a;zgma 一、这是SD压缩文件&#xff0c;双击后进行解压 二、解压后&#xff0c;可以看到一堆文件夹与文件&#xff0c…

【分布式系统】注册中心Zookeeper

目录 一.Zookkeeper 概述 1.Zookkeeper 定义 2.Zookkeeper 工作机制 3.Zookkeeper 特点 4.Zookkeeper 数据结构 5.Zookkeeper 应用场景 统一命名服务 统一配置管理 统一集群管理 服务器动态上下线 软负载均衡 6.Zookkeeper 选举机制 第一次启动选举机制 非第一次…

小白学C++(第一天)基础入门

温馨提醒&#xff1a;本篇文章&#xff0c;请各位c基础不行的童鞋不要贸然观看 C的第一个程序 第一个关键字namespace namespace 是定义空间的名字的关键字&#xff0c;使用格式格式如下&#xff1a; namespace 空间名 { } 其中{ }内的命名空间的成员&#xff0c;可以定义…

分销密文下单

背景 事情的经过就是今天早上一共下了10个单&#xff0c;然后就下不了单了。 如下图&#xff1a; 来到抖店后台显示什么解密额度已经用完了 所以&#xff0c;今天必须把困扰我很久的分销密文下单解决掉 操作 1688分销下单-逸淘订单 1 先关联商品 2 下单 首页导航栏--1688分…

单元测试工具TESSY 新版本亮点速览:提供测试驾驶舱视图、超级覆盖率、代码访问分析、增强覆盖率审查

TESSY最新版本v5.1现已发布&#xff01; 该版本可用于Windows和Linux&#xff0c;并提供各种有趣的新功能。一个突出的新功能是新的“测试驾驶舱视图”&#xff0c;它可用于从整个软件中确定要测试的源代码文件&#xff0c;汇总来自各种测试对象和方法的所有覆盖率测量结果&am…

【MySQL】Mysql数据库导入导出sql文件、备份数据库、迁移数据库

本文摘要&#xff1a;本文提出了xxx的实用开发小技巧。 &#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 &#x1f913; 同时欢迎大家关注其他专栏&…

Linux:进程终止和进程替换

Linux&#xff1a;Linux&#xff1a;进程终止和进程替换 一、进程终止1.1 进程退出场景和创建退出方式 1.2 exit 和 _exit区别二、进程程序替换2.1 进程替换函数2.2 函数解释及命名解释函数解释命名解释 2.3 单进程程序替换&#xff08;无子进程&#xff09;2.3.1 带l函数进程替…

C++规范

一、VS工具集列表&#xff1a; Visual Studio 2008&#xff1a;v90 Visual Studio 2010&#xff1a;v100 Visual Studio 2012&#xff1a;v110 Visual Studio 2013&#xff1a;v120 Visual Studio 2015&#xff1a;v140 &#xff08;v140_xp&#xff09; Visual Studio 2017&a…

kafka 生产者

生产者 生产者负责创建消息&#xff0c;然后将其投递到Kafka中。 负载均衡 轮询策略。随机策略。按照 key 进行hash。 Kafka 的默认分区策略&#xff1a;如果指定了 key&#xff0c;key 相同的消息会发送到同一个分区&#xff08;分区有序&#xff09;&#xff1b;如果没有…

RK3588 linux RGA初探

概述 RGA (Raster Graphic Acceleration Unit)是一个独立的2D硬件加速器&#xff0c;可用于加速点/线绘制&#xff0c;执行图像缩放、旋转、bitBlt、alpha混合等常见的2D图形操作。 本文基于以下版本编写: commit fb5f019ea0191ec1c34f49ac8be447ac8921aadd (HEAD -> main,…