C++ 文件读写操作std::ofstream和std::ifstream

article/2025/10/7 14:59:26

文章目录

  • 前言
  • 一、文件操作的介绍
  • 二、使用步骤
    • 1.读文件操作(std::ifstream)
    • 2.写文件操作(std::ofstream)


前言

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、文件操作的介绍

std::ofstream和std::ifstream都属于fstream这个类。fstream是控制文件读写操作的一个类,其中包括std::ofstream和std::ifstream。注意:其中std::ofstream用于写文件操作,std::ifstream用于读文件操作。

二、使用步骤

1.读文件操作(std::ifstream)

1、构造函数

//默认构造函数
ifstream();
//初始化构造函数	  其中第一个参数filename是所要读取文件所在的位置,第二参数mode描述文件请求的 i/o 模式的标志,即打开文件的方式。
explicit ifstream (const char* filename, ios_base::openmode mode = ios_base::in);
explicit ifstream (const string& filename, ios_base::openmode mode = ios_base::in);

打开文件方式

member constantaccess
ios_base::in以读取方式打开文件。
ios_base::out以写入方式打开文件。
ios_base::binary以二进制模式打开文件。
ios_base:: ate打开文件的时候,定位到文件的末尾。
ios_base:: app以追加方式打开文件,所有写文件的数据都是追加在文件末尾。
ios_base::trunc打开文件时,但是文件之前的内容都会被清空。

2、常用函数

(1) void open (const   char* filename,  ios_base::openmode mode = ios_base::in);	
(2) void open (const string& filename,  ios_base::openmode mode = ios_base::in);打开文件函数。如果读文件操作对象是由默认构造函数创建的,那么可以使用上述的两个函数去打开文件。(3) void close()关闭文件函数。每次对文件执行操作完之后,需要将文件关闭。(4) bool is_open()判断读文件操作对象是否已经打开了文件,如果打开成功则返回值为true,如果打开失败则返回值为false(5) bool eof()用于判断是否到达文件尾部,如果到达了则返回true,否则返回false(6) istream& getline (char* s, streamsize n );
(7) istream& getline (char* s, streamsize n, char delim );用于读取文件中的值,如果遇到'\n'即换行符的是否则停止读取。其中参数s是用于存储读取到的字符,参数n表示最大能读取的字符数,参数delim表示只要下一个要读取的字符与此相等,读字符的操作就会停止。

读文件操作代码如下:

const char FILE_PATH[] = "readTest.txt";//其中readTest.txt文件中为所需要读取的文件
class MyFileStream
{
public:MyFileStream(){}~MyFileStream(){}void readFileOfIfstream(vector<string>& readStrs){ifstream ifs(FILE_PATH,ios_base::in);//只读if(!ifs.is_open()){cout<<"file open fail"<<endl;return;}while(!ifs.eof())//eof() 检查是否到达文件末尾{char readStr[100];ifs.getline(readStr,100);string str(readStr);readStrs.emplace_back(str);}ifs.close();}
};
int main()
{MyFileStream  myFileStream;vector<string> readStrs;myFileStream.readFileOfIfstream(readStrs);for(auto data:readStrs){cout<<data<<endl;}
}

运行之后的效果如下:
在这里插入图片描述

2.写文件操作(std::ofstream)

1、构造函数

//默认构造函数
ofstream();
//初始化构造函数	  其中第一个参数filename是所要读取文件所在的位置,第二参数mode描述文件请求的 i/o 模式的标志,即打开文件的方式。
explicit ofstream (const char* filename, ios_base::openmode mode = ios_base::out);
explicit ofstream (const string& filename, ios_base::openmode mode = ios_base::out);

打开文件方式

member constantaccess
ios_base::in以读取方式打开文件。
ios_base::out以写入方式打开文件。
ios_base::binary以二进制模式打开文件。
ios_base:: ate打开文件的时候,定位到文件的末尾。
ios_base:: app以追加方式打开文件,所有写文件的数据都是追加在文件末尾。
ios_base::trunc打开文件时,但是文件之前的内容都会被清空。

2、常用函数

(1) void open (const   char* filename,  ios_base::openmode mode = ios_base::in);	
(2) void open (const string& filename,  ios_base::openmode mode = ios_base::in);打开文件函数。如果写文件操作对象是由默认构造函数创建的,那么可以使用上述的两个函数去打开文件。(3) void close()关闭文件函数。每次对文件执行操作完之后,需要将文件关闭。(4) bool is_open()判断读文件操作对象是否已经打开了文件,如果打开成功则返回值为true,如果打开失败则返回值为false(5) basic_ostream& operator<< ()该函数的参数有很多种类型,用于将要存储的内容写入到文件中。

写文件操作代码如下(示例):

const char FILE_PATH[] = "readTest.txt";class MyFileStream
{
public:MyFileStream(){}~MyFileStream(){}void writeFileOfOfstream(const string& writeStr){ofstream ofs(FILE_PATH,ios_base::app);//以追加的形式打开文件if(!ofs.is_open()){cout<<"file open fail"<<endl;return;}ofs<<writeStr;}void readFileOfIfstream(vector<string>& readStrs){ifstream ifs(FILE_PATH,ios_base::in);        //只读if(!ifs.is_open()){cout<<"file open fail"<<endl;return;}while(!ifs.eof())//eof() 检查是否到达文件末尾{//string readStr;char readStr[100];ifs.getline(readStr,100);string str(readStr);readStrs.emplace_back(str);}ifs.close();}
};
int main()
{MyFileStream  myFileStream;vector<string> readStrs;myFileStream.readFileOfIfstream(readStrs);for(auto data:readStrs){cout<<data<<endl;myFileStream.writeFileOfOfstream(data);}
}

写文件之前:
在这里插入图片描述
写文件之后:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/Rt7D5hme.shtml

相关文章

C++ 中 ifstream读取txt文件内容

文章目录 头文件把txt文件放在当前目录下1、逐行读入文件2、逐个字符读入&#xff08;忽略空格与回车&#xff09;3、逐个字符读入&#xff08;包括空格与回车&#xff09;示例代码 头文件 #include <iostream> #include <fstream> #include <cassert> #inc…

【C++11】文件操作ifstreamofstream

文章目录 文件输入流创建ifstream对象读取文件数据 文件输出流文件流的打开模式创建ofstream对象写入文件数据 文件输入输出示例 文件输入流 创建ifstream对象 使用ifstream类创建ifstream对象&#xff0c;所获取的对象能够像cin一样使用>>运算符从所绑定文件中读取数据…

C++ ifstream eof()的使用

C ifstream eof() 的使用 eof() 的使用方法1 ifstream.eof() 读到文件结束符时返回true。 大家可能有一个误区&#xff0c;认为读到文件结束符就是读到文件的最后一个字符。 其实不然&#xff0c;文件结束符是文件最后一个字符的下一个字符0xFF&#xff0c;eof() 读到文件结束…

C++文件读写详解(ofstream,ifstream,fstream)

在看C编程思想中&#xff0c;每个练习基本都是使用ofstream,ifstream,fstream&#xff0c;以前粗略知道其用法和含义&#xff0c;在看了几位大牛的博文后&#xff0c;进行整理和总结&#xff1a; 这里主要是讨论fstream的内容&#xff1a; #include <fstream>ofstream …

c++输入文件流ifstream用法详解

目录 文章目录 输入流的继承关系&#xff1a;成员函数Public member functions 1&#xff0c; (constructor) 2&#xff0c;ifstream::open 3&#xff0c;ifstream:: is_open 4&#xff0c;ifstream:: close 5&#xff0c;ifstream:: rdbuf 6&#xff0c;ifstream:: operator …

ifstream的使用

fstream提供了三个类&#xff0c;用来实现c对文件的操作。&#xff08;文件的创建、读、写&#xff09;。 ifstream – 从已有的文件读入 ofstream – 向文件写内容 fstream - 打开文件供读写 文件打开模式&#xff1a; ios::in 只读 ios::out 只写 ios::app 从文件末尾开始写&…

c++ 输入文件流ifstream用法详解

文章目录 c 输入文件流ifstream用法详解输入流的继承关系&#xff1a;C 使用标准库类来处理面向流的输入和输出&#xff1a;成员函数Public member functions1. **(constructor)**2. **ifstream::open**3. **ifstream:: is_open**4. **ifstream:: close**5. **ifstream:: rdbuf…

计算机工业控制高职教材,计算机控制技术(21世纪高职高专系列规划教材)

导语 本书以工业控制计算机(IPC)为主线&#xff0c;理论联系实际&#xff0c;突出工程应用&#xff0c;阐述了计算机控制技术及其工程实现方法。全书分为8章&#xff0c;内容包括&#xff1a;计算机控制系统概述&#xff0c;计算机控制过程通道&#xff0c;数字控制技术&#x…

高职高专信息工程学院专业设置

学院全面落实立德树人根本任务,注重实习实训,着力培养德才兼备的技能型信息技术人才。与华为、腾讯、百度、阿里巴巴、新浪、搜狐、网易等多家知名IT企业合作,建成多所紧贴行业前沿的实习实训基地,保证人才培养与企业需求无缝对接。学院现有计算机应用技术、云计算技术应用…

湖北省高职计算机本科学校有哪些,盘点最新湖北十大高职高专院校排名,湖北最好的高职院校有哪些?...

高职高专就是高等职业学院和高等专科学校的简称&#xff0c;是专科(大专)层次的普通高等学校。简单点来说&#xff0c;高职高专院校就是职业技术教育&#xff0c;是职业技术教育的高等阶段。今天小编就来给大家盘点下最新湖北十大高职高专院校排名&#xff0c;湖北最好的高职院…

江西省计算机学会高职高专,我校应邀出席江西省计算机学会高职高专工作委员会成立大会...

8月21日下午&#xff0c;江西省计算机学会高职高专工作委员会成立大会在南昌召开&#xff0c;中国计算机学会职业教育发展委员会、江西省计算机学会、广东省计算机学会高职高专分会、省内相关高职院校领导和企业代表等90余人参加成立大会。我校作为主任委员单位&#xff0c;副校…

武汉高职高专计算机专业分数线,武汉高职高专学校有哪些及分数线

武汉市高职高专众多&#xff0c;其中也包含不少野鸡大学&#xff0c;哪些高职高专是值得2020年高考生选择的正规高校&#xff0c;7月9日教育部官网已公布全国高校名单&#xff0c;其中武汉市有37所公办或民办的高职学校&#xff0c;已整理各高职院校2019年名单及最低录取分数线…

高职高专计算机毕业论文平面设计,高职高专平面设计论文

高职高专平面设计论文 1高职高专平面设计教学的问题 (1)学生学习态度不够端正 随着高校的不断扩招&#xff0c;大学本科的门槛变低&#xff0c;学习不好的学生也可以考上高职高专的&#xff0c;所以很多学生高中学习成绩就不好&#xff0c;基础不扎实&#xff0c;他们一直是态度…

计算机网络 高职,高职高专计算机网络

高职高专计算机网络 1、高职高专院校精品课程现状 从教学方法到教学手段、从教学思想到教学内容、从教材到管理、从教师到学生&#xff0c;计算机网络精品课程建设涉及广泛。然而&#xff0c;要想提升教学质量&#xff0c;就必须紧抓每一个环节。 1.1教学实践比重失衡 在现阶段…

湖北省高职高专计算机专业排名,湖北高职高专学校排名

今天就是高职高专院校填报志愿的日子了&#xff0c;湖北省的高职高专院校有哪些&#xff0c;排名比较靠前的是哪些&#xff0c;大家在填报志愿的时候总是非常迷茫不知道该填报什么专业&#xff0c;下面还给大家推荐了一些该院校的王牌专业&#xff0c;希望能对大家有所帮助。 周…

模式识别、机器学习、深度学习的区别

1、模式识别概念 模式识别是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析&#xff0c;以对事物或现象进行描述、辨认、分类和解释的过程&#xff0c;是信息科学和人工智能的重要组成部分。 2、机器学习 计算机程序可以在给定某种类别的任…

什么是模式识别,对抗学习是什么?

模式识别是什么&#xff1f; 作为人工智能的一个重要方向&#xff0c;模式识别的主要任务是模拟人的感知能力&#xff0c;如通过视觉和听觉信息去识别理解环境&#xff0c;又被称为“机器感知”或“智能感知”。 人们在观察事物或现象的时候&#xff0c;常常要寻找它与其他事…

《模式识别与机器学习》 简称 PRML 开源了

前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/84847904 未经博主允许不得转载。 博主地址是&#xff1a;http://blog.csdn.net/freewebsys 1&#xff0c;关于PRML 《Pattern Recognition and Machine Learning》&#xff0c;中文译名《模式识别与…

关于机器学习、深度学习以及模式识别

随着这两年深度学习的火爆&#xff0c;在超分辨率重建领域也有着越来越多关于深度学习相关方法的文章涌现出来。对于之前没有接触过机器学习之类的人&#xff0c;看起来确实会有些一头雾水&#xff0c;所以这里整理了一下三个关于此的热词。深度学习、机器学习以及模式识别。 …