学习:文件操作
时间:2019-11-17
本文章向大家介绍学习:文件操作,主要包括学习:文件操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放
通过文件可以将数据持久化
C++中对文件操作需要包含头文件
文件类型分为两种:
1、文本文件 - 文件以文本的ASCII码形式存储在计算机中
2、二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们
操作文件的三大类:
1、ofstream:写操作
2、ifstream: 读操作
3、fstream : 读写操作
写文件操作
写文件步骤如下:
1、包含头文件
#include <fstream>
2、创建流对象
ofstream ofs;
3、打开文件
ofs.open("文件路径",打开方式);
4、写数据
ofs << "写入的数据";
5、关闭文件
ofs.close();
示例代码如下:
#include<iostream>
#include<fstream> //包含头文件
using namespace std;
int main() {
//文件写操作
ofstream ofs; //创建流对象
ofs.open("1.txt", ios::out); //以写的方式打开并且是覆盖方式,发现如果文件不存在的时候,以写的方式打开文件会自动创建,读的方式不会
ofs << "test" << endl;
ofs << "男" << endl;
ofs << "18" << endl;
ofs.close();
system("pause");
return 0;
}
注意: 文件打开方式可以配合使用,利用|操作符
例如:用二进制方式写文件ios::binary | ios:: out
读文件操作
步骤其实和写文件的操作差不多,但是我们创建的流对象不一样,并且打开方式也不一样
示例代码如下:
#include<iostream>
#include<fstream> //包含头文件
using namespace std;
int main() {
ifstream ifs;//创建流对象
ifs.open("1.txt", ios::in); //以读的方式打开
if (!ifs.is_open()) { //判断文件是否打开成功,如果打开失败就return
cout << "文件读取失败" << endl;
return 0;
}
//第一种方式进行读取
//char buf[1024] = { 0 }; //进行初始化操作
//while (ifs >> buf) { //进行读取操作
// cout << buf << endl;//输出读取到的内容
//}
//char buf[1024] = { 0 };
////这里自己觉得有意思的是getline传入的buf的指针
//while (ifs.getline(buf, size(buf))) { //istream& getline (char* s, streamsize n );
// cout << buf << endl;
//}
//这种也挺有意思的EOF 来判断 所以自己也写一下记录
char c;
while ((c = ifs.get()) != EOF) //get进行单个字符读取,感觉有点鸡肋
{
cout << c;
}
ifs.close(); //进行关闭文件的操作
system("pause");
return 0;
}
操作二进制文件:
原文地址:https://www.cnblogs.com/zpchcbd/p/11877613.html
- .NET 和Java 对象 XML序列化 库WOX
- jquery mobile 移动web(6)
- IIS6 间歇性的发生500错误的解决方法
- 产品之上的世界观
- 使用Windows 7中的库
- WordPress 开发之让浏览器自动加载最新的CSS、JS文件(免刷新缓存)
- [C#6] 0-概览
- 移植Windows自宿主WCF服务到Linux/Mono2.8
- IISWeb应用防火墙WAF
- WordPress 开发之让浏览器自动加载最新的CSS、JS文件(免刷新缓存)
- 在Windows 7无法通过UNC路径连接到共享文件夹的解决方法
- SQL Sever索引
- 使用SQL Server Management Studio 2008 将数据库里的数据导成脚本
- jquery mobile 移动web(5)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 推荐一个生成后端模拟数据的懒人工具:lazy-mock
- django-rest-framework框架学习
- 弄懂这 5 个问题,拿下 Python 迭代器!
- 一天一大 leet(跳水板)难度:简单-Day20200708
- 百度一二三面!喜提提起批offer!别问,问就是牛逼!
- 一天一大 leet(计算右侧小于当前元素的个数)难度:困难-Day20200711
- Spring 下,关于动态数据源的事务问题的探讨
- 面试再问 HashMap,求你把这篇文章发给他!
- FestIN:一款功能强大的S3 Buckets数据内容搜索工具
- 一天一大 leet(地下城游戏)难度:困难-Day20200712
- 【MongoDB】mongodb4.4版本新特性
- 一天一大 leet(数组中的第 K 个最大元素)难度:中等 DAY-29
- 线程之生产者消费者模式
- Redis学习笔记 -- 2
- 一天一大 leet(单词拆分)难度:中等 DAY-25