首页 > 编程语言 >如何使用C++进行文件读写操作

如何使用C++进行文件读写操作

时间:2024-07-01 21:58:37浏览次数:20  
标签:std 文件 关闭 读写操作 C++ file include cout

在C++中,我们可以使用标准库中的 <fstream>(文件流)来进行文件的读写操作。以下是一些基本的文件读写操作的示例。

读取文件


cpp复制代码

#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream file("example.txt"); // 打开文件以进行读取操作
if (file.is_open()) { // 检查文件是否成功打开
std::string line;
while (std::getline(file, line)) { // 逐行读取文件
std::cout << line << '\n'; // 输出每一行
}
file.close(); // 关闭文件
} else {
std::cout << "Unable to open file"; // 如果文件打开失败,输出错误信息
}
return 0;
}

写入文件


cpp复制代码

#include <fstream>
#include <iostream>
int main() {
std::ofstream file("example.txt"); // 打开文件以进行写入操作
if (file.is_open()) { // 检查文件是否成功打开
file << "Hello, World!"; // 写入字符串到文件
file.close(); // 关闭文件
} else {
std::cout << "Unable to open file"; // 如果文件打开失败,输出错误信息
}
return 0;
}

追加内容到文件

如果你希望在文件的末尾追加内容,而不是覆盖原有的内容,你可以使用 std::ofstream 的构造函数,并传入 std::ios::app 标志。


cpp复制代码

#include <fstream>
#include <iostream>
int main() {
std::ofstream file("example.txt", std::ios::app); // 打开文件以进行追加操作
if (file.is_open()) { // 检查文件是否成功打开
file << "This is appended content."; // 追加字符串到文件
file.close(); // 关闭文件
} else {
std::cout << "Unable to open file"; // 如果文件打开失败,输出错误信息
}
return 0;
}

注意:在使用完文件后,关闭文件是一个好习惯,因为这可以确保所有的数据都被正确地写入磁盘,并释放系统资源。然而,如果你使用的是C++17或更高版本,你可以使用RAII(Resource Acquisition Is Initialization)原则,通过智能指针(如 std::unique_ptr 或 std::shared_ptr)或作用域退出时自动关闭的封装类(如 std::ofstream 的析构函数)来自动管理文件的关闭。在上面的示例中,当 file 变量离开其作用域时,其析构函数会自动关闭文件。

标签:std,文件,关闭,读写操作,C++,file,include,cout
From: https://blog.csdn.net/2402_85246552/article/details/140054290

相关文章

  • C++11中如何创建线程
    在C++11中,创建线程变得非常简单和标准化,因为C++11引入了线程库(<thread>)。这个库提供了std::thread类,使得创建和管理线程变得更加直接和方便。以下是如何在C++11中创建线程的基本步骤:包含线程库:首先,你需要包含<thread>头文件,以便使用std::thread。定义线程将要执行的函数或可......
  • 操作配置文件保存方式(上位机)
    上位机:(SupervisorControl)指的是用于监视和控制其他设备或者系统的计算机,在工业自动化和过程控制领域 上位机典型就是一台PC或者服务器,用于语各种下位机进行通信的,收集数据,并且根据收集的数据发送一些数据。 典型的设备电脑平板手机触控屏等。c#创建上位机程......
  • C++文件系统操作1 - 跨平台实现文件的创建和删除
    1.关键词2.fileutil.h3.fileutil.cpp4.filetype.h5.filesystem_win.cpp6.filesystem_unix.cpp7.源码地址1.关键词C++文件系统操作创建文件删除文件创建软连接刪除软连接跨平台2.fileutil.h#pragmaonce#include<string>#include<cstdio>#includ......
  • 随机生成50个0-100之间的数字,生成对应个数的随机字母,再按数字大小从小到大排序最后写
    importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.Random;importjava.io.FileNotFoundException;importjava.io.PrintStream;publicclassRandomNum{publicstaticvoidmain(String[]args)throwsFileNotF......
  • 【git】github如何上传超过100MB大小的单个文件
    在使用GitHub进行版本控制时,默认情况下,单个文件的大小限制为100MB。如果你需要上传超过这个大小的文件,可以使用GitLFS(LargeFileStorage)。GitLFS是一种Git扩展,专门用于处理大文件,它将大文件替换为轻量级的指针,并将实际的文件内容存储在远程服务器上。1.安装从Git2......
  • 深入解析C++标准库中的std::vector容器
    1.底层实现std::vector 是C++标准库中的一个模版类,用于动态数组。它的底层实现可以理解为一个动态分配的连续内存块,当需要更多空间时,内存会自动扩展。内存分配:vector 使用一块连续的内存存储元素。当插入新元素导致容量不足时,vector 会分配一块更大的内存(通常是当前容量......
  • SSM配置文件分类及总结
    配置组件通常涉及以下几个方面数据访问配置配置数据源、JdbcTemplate、事务管理器等,以支持数据库操作。服务层与DAO层配置定义服务类和服务实现类、数据访问对象(DAO)的bean,以及它们之间的依赖关系。MVC配置包括视图解析器、控制器的扫描包配置、静态资源映射、消息转换器......
  • C++仿SKData实现C原生指针管理
    template<typenameT>classHBData{public:HBData(T*other_data,size_tother_size,boolrelease):data(other_data),size(other_size),isDeepCopy(release){}HBData(constHBData&other){if(isDeepCopy&&data)......
  • C/C++ Dijkstra(迪杰斯特拉)算法详解及源码
    Dijkstra(迪杰斯特拉)算法是一种用于寻找带权重图中的最短路径的算法。它由荷兰计算机科学家EdsgerDijkstra于1956年提出,被广泛应用于网络路由算法和地图路线规划等领域。算法思想:初始化一个距离数组,用于保存起点到每个顶点的当前最短距离(初始时将起点距离设置为0,其他顶......
  • 从指定的CSV文件中读取图片URL,批量下载这些图片到指定的目录
    导入必要的库:包括pandas用于处理CSV文件,requests用于发送网络请求,以及os和time等进行文件系统操作和可能的时间控制。设置路径:指定了CSV文件的位置和图片将要保存的目录。如果保存目录不存在,脚本会自动创建。配置HTTP请求会话:使用requests.Session()建立会话,并通过Retry和......