C++基础 ----- 文件操作
文章目录
- 写在前面
- 文本文件的读写操作流程
- 一、写文件
- 二、读文件
- 三、关于文件的打开方式
- 二进制文件的读写操作
- 一、写文件
- 二、读文件
写在前面
C++中对文件操作需要包含头文件
<fstream>
文件类型分为两种
文本文件:文件以文本对ASCII码形式存储在计算机中
二进制文件:文件以文本的二进制形式存储在计算机中操作文件的三大操作
ofstream:写操作
ifstream:读操作
fstream:读写操作
文本文件的读写操作流程
一、写文件
(1) 流程
- 包含头文件:
<fstream>
- 创建输出流对象:
ofstream ofs;
- 输出流对象调用open方法打开文件:
ofs.open("文件路径", 打开方式)
- 输出数据:
ofs << 数据;
- 关闭流:
ofs.close();
(2) 测试
#include<iostream>
#include<string>
#include <fstream>
using namespace std;void outputToFile(string file, string content, int mode) {ofstream ofs;ofs.open(file, mode);ofs << content << endl;ofs.close();
}int main() {outputToFile("hello","momo\nmomo\nmo",ios::out);
}
二、读文件
(1) 流程
- 包含头文件:
<fstream>
- 创建输入流对象:
ifstream ifs;
- 输入流对象调用open方法打开文件:
ifs.open("文件路径", 打开方式)
- 四种读取数据的方式 (详见测试代码)
- 关闭流:
ifs.close();
(2) 测试
#include <fstream>
#include<iostream>
#include<string>using namespace std;string readFile(string file, int mode) {ifstream ifs;ifs.open(file, mode);string s;if (!ifs.is_open()) {cout << "文件打开失败" << endl;return nullptr;}// 第一种方法
// char buf[1024] = {0};
// while (ifs >> buf) {// s.append(buf);
// }// 第二种方法:每次读取一行数据到buf中
// char buf[1024] = {0};
// while (ifs.getline(buf,sizeof(buf))) {// s.append(buf);
// s.append("\n");
// }// 第三种方法:每次读取一行数据到buf中
// string buf;
// while (getline(ifs,buf)) {// s.append(buf + "\n");
// }// 第四种方法:每次读取一个字符到c中
// char c;
// EOF end of file
// while ((c = ifs.get()) != EOF) {// s.push_back(c);
// }ifs.close();return s;
}int main() {cout << readFile("hello",ios::in) << endl;
}
三、关于文件的打开方式
打开方式 | 说明 |
---|---|
ios::in | 为读文件而打开文件 |
ios::out | 为写文件而打开文件 |
ios::ate | 写入的初始位置为文件尾 |
ios::app | 以追加方式写入文件 |
ios::trunc | 如果文件存在则删除后重新创建 |
ios::binary | 二进制方式 |
注意:文件打开方式可以配合使用,利用|
操作符,如:ios::out | ios app
二进制文件的读写操作
流程基本和上面一样,下面只展示测试代码
一、写文件
#include<iostream>
#include<string>
#include <fstream>
using namespace std;class Person {public:int age;char* name;Person(int age, char* name){this->age = age;this->name = name;}
};int main() {ofstream ofs("Person.txt",ios::out | ios::binary);Person p (11,"张三");ofs.write((const char*) &p, sizeof(Person));ofs.close();
}
二、读文件
#include<iostream>
#include<string>
#include <fstream>using namespace std;class Person {public:int age;char *name;Person(int age, char *name) {this->age = age;this->name = name;}Person() {}
};int main() {ifstream ifs;ifs.open("Person.txt", ios::in | ios::binary);if (!ifs.is_open()) {cout << "文件打开失败" << endl;return 0;}Person p;ifs.read((char*) &p, sizeof(Person));cout << "姓名:" << p.name << "\n" << "年龄:" << p.age << endl;ifs.close();
}
C++基础 ----- 文件操作相关推荐
- Python基础-文件操作
Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...
- logback-spring.xml 文件路径 相对路径_小白学 Python(18):基础文件操作
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- python 相对路径报错_小白学 Python(18):基础文件操作
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- Python基础--文件操作
文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件 2. 读或者写 3 关闭文件流保存数据. Python 访问模式如下: 打开 ...
- python基础-文件操作(10)
一.什么是文件 等等这些都叫做文件,各种格式的.但不仅仅限制于这些. 二.文件的作用 大家应该听说过一句话:"好记性不如烂笔头". 不仅人的大脑会遗忘事情,计算机也会如此,比如一个 ...
- WEB安全基础-文件操作漏洞
文件操作漏洞 常见文件操作: 文件上传 上传头像: 上传附件: 文件下载 下载应用: 下载附件: 文件上传 上传Webshell 上传木马 文件下载 下载系统任意文件 下载程序代码 常见文件操作漏洞: ...
- 15_python基础—文件操作
文章目录 目标 一.文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式(二进制) 1.3 文本文件和二进制文件 二.文件的基本操作 2.1 文件操作步骤 2.2 操作文件的函数/方法 2.2 ...
- python 基础文件操作
实时刷新到硬盘里 f= open('hh','w',encoding='utf8') f.write('gyftyftft') f.write('hghgh\njkkjk') f.flush()#实时 ...
- 第三章 Python基础——文件操作函数
3.1三元运算 三元运算又称三目运算,是对简单条件的简写 if 条件成立:val=1 else:val=2 改成三元运算: val=1 if条件成立 else 2 3.2字符编码转换 编码的种类情况: ...
最新文章
- SpringCloud 教程 | 第二篇: 服务消费者(rest+ribbon)
- php和python区别-php与python的区别
- malloc函数具体解释
- python 调试命令
- C语言十六进制数转八进制(十进制作为中介)(附完整源码)
- 100流明相当于多少w_1990年的100元,相当于2020年的多少钱?
- 墨刀原型制作 位置选择_原型制作不再是可选的
- 大数据时代下,App数据隐私安全你真的了解么?
- fastai学习:02_production Questionnaire
- 苹果挥刀,iPhone 12 mini要换处理器了,无缘A14!
- php socket发数据打印,PHP向socket服务器收发数据的方法
- OpenCV最简JAVA版范例
- C# MysqlHelper 执行reader时,遇到致命错误或者超时
- Win10磁盘的分区与合并傻瓜教程
- 腾讯地图点聚合开发-实现地图找房功能
- java 繁体转简体_java 中文繁简体转换工具 opencc4j
- 山西大同大学计算机考试打印准考证
- 塞拉利昂首次秘密进行基于区块链的总统选举
- 天池比赛首次参加记录
- php户型图识别,五大指标教你看懂户型图