首页 > 编程语言 >C++文件操作实战:创建、写入、读取、修改文件一应俱全

C++文件操作实战:创建、写入、读取、修改文件一应俱全

时间:2024-03-17 09:01:22浏览次数:18  
标签:文件 读取 创建 一应俱全 写入 C++ include

 

概述:此C++示例详解文件操作:创建、删除、判断存在、写入、读取和修改文件内容。清晰演示了常见文件处理方法及源代码实现。

以下是一个简单的C++实例,演示如何进行文件操作,包括创建文件、删除文件、判断文件是否存在、向文件写入内容、读取文件内容以及修改文件内容。

#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdio>

// 创建文件
void createFile(const std::string& filename) {
    std::ofstream file(filename);
    if (file.is_open()) {
        std::cout << "文件创建成功: " << filename << std::endl;
        file.close();
    } else {
        std::cerr << "无法创建文件: " << filename << std::endl;
    }
}

// 删除文件
void deleteFile(const std::string& filename) {
    if (std::remove(filename.c_str()) == 0) {
        std::cout << "文件删除成功: " << filename << std::endl;
    } else {
        std::cerr << "无法删除文件: " << filename << std::endl;
    }
}

// 判断文件是否存在
bool fileExists(const std::string& filename) {
    std::ifstream file(filename);
    return file.good();
}

// 向文件写入内容
void writeFile(const std::string& filename, const std::string& content) {
    std::ofstream file(filename);
    if (file.is_open()) {
        file << content;
        std::cout << "内容成功写入文件: " << filename << std::endl;
        file.close();
    } else {
        std::cerr << "无法打开文件进行写入: " << filename << std::endl;
    }
}

// 读取文件内容
std::string readFile(const std::string& filename) {
    std::ifstream file(filename);
    std::stringstream buffer;
    if (file.is_open()) {
        buffer << file.rdbuf();
        file.close();
    } else {
        std::cerr << "无法打开文件进行读取: " << filename << std::endl;
    }
    return buffer.str();
}

// 修改文件内容
void modifyFile(const std::string& filename, const std::string& newContent) {
    std::string content = readFile(filename);
    writeFile(filename, content + "\n" + newContent);
}

int main() {
    const std::string filename = "example.txt";
    
    // 创建文件
    createFile(filename);

    // 写入内容
    writeFile(filename, "Hello, File!");

    // 读取并输出内容
    std::cout << "文件内容: " << readFile(filename) << std::endl;

    // 修改文件内容
    modifyFile(filename, "Appended Text");

    // 读取并输出修改后的内容
    std::cout << "修改后的文件内容: " << readFile(filename) << std::endl;

    // 删除文件
    deleteFile(filename);

    return 0;
}

在这个例子中,我们使用了 <iostream> 和 <fstream> 头文件来进行文件操作。通过各个函数,实现了创建文件、删除文件、判断文件是否存在、向文件写入内容、读取文件内容以及修改文件内容的功能。在 main 函数中,我们演示了如何使用这些函数来操作文件。

 

标签:文件,读取,创建,一应俱全,写入,C++,include
From: https://www.cnblogs.com/hanbing81868164/p/18078074

相关文章

  • 查看宝塔mysql二进制文件 mysqlbinlog
    mysqlbinlog执行文件位置/www/server/mysql/binmysql-bin二进制日志位置/www/server/data/#/www/server/data/mysql-bin.000060把二进制导出为.sql文件#建议/www/server/data/mysql-bin.000060文件cp到mysqlbinlog文件执行目录并设置权限为www755./mysqlbinlogmysql-......
  • C++ 简单使用Json库与muduo网络库
    C++简单使用Json库与muduo网络库C++使用Json库测试代码均在Ubuntu20上运行首先下载json.hpp的代码链接然后和你的测试代码放在同一目录下面导入方式#include"json.hpp"usingjson=nlohmann::json;json序列化代码测试1voidtest1(){jsonjs;js["id"]={1......
  • UG NX二次开发(C++)-创建样条曲线(二)-UF_MODL_create_spline使用
    系列文章目录第一章、UGNX二次开发(C++)-创建样条曲线(一)-UF_CURVE_create_spline使用第二章、UGNX二次开发(C++)-创建样条曲线(二)-UF_MODL_create_spline使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录第一章、[UGN......
  • C++ STL第三篇(搞清楚deque原理和有多少用法)
    dequeVector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。Deque容器和vector容器最大的差异,一在于deque允许......
  • 滴水逆向笔记系列-win32总结2-45.esp寻址_定位回调函数-46.子窗口_消息处理函数-47.资
    第四十五课win32esp寻址_定位回调函数自己vs编译的exe入口函数好像和课程视频哩的vc6不一样,没办法跟着视频走,可以用课件里给的作业exe勉强跟着视频学,前面的都差不多,课件下载地址:https://www.bcdaren.com/video/videoPlay/3303185150621818881.win32应用程序入口识别没加过壳......
  • Linux 运维工程师面试真题-2-Linux 命令及文件操作
    Linux运维工程师面试真题-2-Linux命令及文件操作1.在/tmp/目录下创建test.txt文件,内容为:Hello,World!,用一个命令写出来。2.给test.txt文件除所有者之外增加执行权限,最终以数字写出文件的权限。3.用vi命令编辑test.txt,如何跳转到末行,首行,行首、行末,如何在光标行下一......
  • 使用位运算对数据或文件进行加密
    数据加密解密是一个常用的功能,如果你不希望让别人看到文件中的内容,可以通过密钥(也称”密码“)将文件的内容加密。比如文本文件(.txt),加密前的内容是能够读懂的,加密后的内容是”乱码“,都是一些奇怪的字符,根本无法阅读。数据加密解密的原理也很简单,就是使用异或运算。请先看下面的......
  • (C++)DP动态规划
    天下苦DP久已。​ DP非常重要,2022年蓝桥杯应该改名为DP杯,至于2023年那个我觉得应该叫做暴力杯。​ DP的核心思想在于,通过前面几个状态来推导下一个数据是什么,也就是走一步是一步。其本质实际上是记忆化搜索,但是有些玄学的事情就是,有时候记忆化会因为玄学递归问题TLE,但DP的那四......
  • c++机试一些提示
    1、优先队列的使用,头文件#include;优先队列定义:priority_queue<int,vector<int>,greater<int>>pq;(整数数据类型,小顶堆)。例题:哈夫曼树#include<iostream>#include<queue>usingnamespacestd;intmain(){intn;cin>>n;priority_queue<i......
  • 华为OD机试 C++ -文件缓存系统
    文件缓存系统前言:本专栏将持续更新互联网大厂机试真题,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于大厂机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:[email protected];备注:CSDN。题目描述请设计一个文件缓......