c++中ifstream和ofstream的详细用法

article/2025/10/7 14:28:02

TITLE:因为不经常用这两个操作,每次用都得找,网上的文章良莠不齐,有时候不容易找到合适的,故将其记录下来,供以后使用方便。

1. fstream

fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。
ifstream --   从已有的文件读 
ofstream --  向文件写内容 
fstream --    打开文件供读写 

2.文件打开模式: 
ios::in--                 
ios::out --               写
ios::app--               从文件末尾开始写
ios::binary--           二进制模式
ios::nocreate--       打开一个文件时,如果文件不存在,不创建文件
ios::noreplace--     打开一个文件时,如果文件不存在,创建该文件
ios::trunc--             打开一个文件,然后清空内容
ios::ate--                打开一个文件时,将位置移动到文件尾 

3.文件指针位置在c++中的用法: 
ios::beg   文件头
ios::end   文件尾
ios::cur    当前位置
例子:
file.seekg(0,ios::beg); //让文件指针定位到文件开头 
file.seekg(0,ios::end); //让文件指针定位到文件末尾 
file.seekg(10,ios::cur); //让文件指针从当前位置向文件末方向移动10个字节 
file.seekg(-10,ios::cur); //让文件指针从当前位置向文件开始方向移动10个字节 
file.seekg(10,ios::beg); //让文件指针定位到离文件开头10个字节的位置 

4.常用的错误判断方法: 
根据数据流读写的状态,有4个验证函数,它们分别是:
· bad()
如果在读写过程中出错,返回 true 。例如:当我们要对一个不是打开为写状态的文件进行写入时,或者我们要写入的设备没有剩余空间的时候。
· fail()
除了与bad() 同样的情况下会返回 true 以外,加上格式错误时也返回true ,例如当想要读入一个整数,而获得了一个字母的时候。
· eof()
如果读文件到达文件末尾,返回true。
· good()
这是最通用的:如果调用以上任何一个函数返回true 的话,此函数返回 false 。

5.文件读写操作

由于类ofstream, ifstream 和fstream 是分别从ostream, istream 和iostream 中引申而来的,所以文件的读写操作与使用控制台函数cin和cout一样,“<<”表示对文件进行写操作,“>>”表示对文件进行读操作。

 

注意:在读取文件内容时,要用string类型或者char类型的变量接收,不然读出的内容会有错,例如:

这是我的写文件函数

void mice::Writemaze()
{ofstream outFile(filename,ios::out);for (int i = 0; i < width; i++){for (int j = 0; j < length; j++){outFile << maze[i][j];//这个int型数组在其他函数里已赋入内容}}outFile.close();
}

写入文件里的内容

这是我的读文件函数,用了int型的数组接收读入内容,出现错误

void mice::Readmaze()
{ifstream inFile(filename, ios::in);int data[100][100];for (int i = 0; i < width; i++){for (int j = 0; j < length; j++){inFile >> data[i][j];}}for (int i = 0; i < width; i++){for (int j = 0; j < length; j++){	   cout<<data[i][j]<<" ";}cout << endl;}inFile.close();
}

读出来的内容如下,和写入的不一致

 将读文件函数改为用char型数组接收,错误解决

void mice::Readmaze()
{ifstream inFile(filename, ios::in);/*************************************** >>流操作只能把值赋给char型或string型变量*我把int data[100][100];改成了下面的:*测试可以了**************************************/char data[100][100];for (int i = 0; i < width; i++){for (int j = 0; j < length; j++){inFile >> data[i][j];}}cout<<"读出内容为:"<<endl;for (int i = 0; i < width; i++){for (int j = 0; j < length; j++){/*******************************如果需要用int型的,这样搞,如下:******************************/cout<<(int)data[i][j]-'1'+1<<" ";}cout << endl;}inFile.close();
}

可见,读出内容与写入内容一致

 

附:参考文献

https://www.cnblogs.com/zzc2018/p/9600577.html

https://blog.csdn.net/u010325193/article/details/80885925

https://blog.csdn.net/sinat_36219858/article/details/80369255

感谢他们的分享!


http://chatgpt.dhexx.cn/article/32F72kUb.shtml

相关文章

C++文件读取ifstream

使用ifstream流来读取文件 说明&#xff1a; 1.ifstream类的对象创建成功的时候会返回非空值&#xff0c;借此判断是否创建文件对象成功 2.ifstream有个函数eof()用来判断文件是否读到尾部,没读到尾部返回false&#xff0c;否则返回true。 若尾部有回车&#xff0c;那么最后一…

C++中读取文件ifstream、ofstream

现在&#xff0c;我想对一个utf-8的json文件进行读写操作。在此过程中&#xff0c;遇到了一些问题。 头文件的添加&#xff1a; #include <iostream> #include <cstring> #include <fstream> #include <sstream> &#xff08;一&#xff09;ifstrea…

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

文章目录 前言一、文件操作的介绍二、使用步骤1.读文件操作&#xff08;std::ifstream&#xff09;2.写文件操作&#xff08;std::ofstream&#xff09; 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习…

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、机器学习 计算机程序可以在给定某种类别的任…