C++中对文件操作需要包含头文件<fstream>

操作文件的三大类:1.ofstream写操作  2.ifstream读操作  3.fstream读写操作

一.写文件步骤

1.包含头文件   #include<fstream>

2.创建流对象   ofstream ofs;

3.打开文件    ofs.open("文件路径",打开方式);

4.写数据        ofs<<"写入的数据";

5.关闭文件    ofs.close();

文件打开方式:

打开方式 解释
ios::in 为读文件而打开文件
ios::out 为写文件而打开文件
ios::ate 初始位置:文件尾
ios::app 追加方式写文件
ios::trunc 如果文件存在先删除,再创建
ios::binary 二进制方式

文件打开方式可以配合使用:利用" | "操作符

Example:写入文件

#include<iostream>
#include<fstream>//所要包含的头文件
using namespace std;
void test()
{
//创建流对象
ofstream ofs;
//指定打开的方式
ofs.open("test.txt", ios::out);//没有指定路径,就会与项目路径一致
//4.写内容
ofs << "姓名:JIN" << endl;
//5.关闭文件
ofs.close();
}
int main()
{
test();
system("pause");
return 0;
}

读文件

1.包含头文件    #include<fstream>

2.创建流对象    ifstream ifs;

3.打开文件并判断文件是否打开成功

ifs.open("文件路径",打开方式);

4.读数据      四种方式读数据

5.关闭文件     ifs.close();

Example:读入文件

#include<iostream>
#include<fstream>
using namespace std;
//读文件
void test()
{
//创建流对象
ifstream ifs;
ifs.open("test.txt", ios::in);//在代码存储的同一个文件路径下
//判断是否打开成功
if (!ifs.is_open())
{
cout << "文件打开失败!" << endl;
//当这个文件不存在或其它意外
}
//读数据
//第一种
char ch[100] = { 0 };
//如果文档中遇到一个换行符或者空格就会判断下一个
while (ifs >> ch)
{
cout << ch << endl;
}
ifs.close();
} int main()
{
test();
system("pause");
return 0;
}

第二种读入方式

    //ifs的一个函数getline()可以读取一行数据,需要传入两个参数
//数组首地址,存储的字节数在这里指数组提供的空间
while (ifs.getline(ch, sizeof(ch)))
{
cout << ch << endl;
}

第三种读入方式

   //不使用字符数组,而使用C++中的字符串string
string ch;
while (getline(ifs, ch))//使用函数getline
{
cout << ch << endl;
}

注意:一定要关闭文件 !

Importance

员工管理系统使用读写文件

学习记录--C++文件读入与存储的更多相关文章

  1. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

  2. hadoop学习记录--hdfs文件上传过程源码解析

    本节并不大算为大家讲接什么是hadoop,或者hadoop的基础知识因为这些知识在网上有很多详细的介绍,在这里想说的是关于hdfs的相关内容.或许大家都知道hdfs是hadoop底层存储模块,专门用于 ...

  3. Java学习记录:文件的输入输出流

    Java中的输入.输出流中可以用于文件的读写,拷贝. 由于文件都是由字节组成的,可以将文件中的内容以字节的方式读取出来. 输入流还可以直接转换为图片来使用.其实ImageIcon提供了方法可以直接打开 ...

  4. Linux 学习记录 二 (文件的打包压缩).

     前言:本文参考<鸟哥的Linux 私房菜>,如有说的不对的地方,还请指正!谢谢!  环境:Centos 6.4    和window不同,在Linux压缩文件需要注意的是,压缩后的文件会 ...

  5. C#学习记录二:高级数据存储方式

    1,结构 结构和类的区别主要在于存储和访问方式,结构是一种值 数据类型,而类是一一种引用数据类型.所谓值数据类型存储个人理解是存在堆里面的,所谓引用数据类型存储在了栈里面,相当于存储了一个指针. 结构 ...

  6. Linux 学习记录二(文件的打包压缩).

    和 window不同,在Linux压缩文件需要注意的是,压缩后的文件会把源文件给替代,无论是gzip.bzip2.xz 均不支持压缩目录,要达到压缩目录的目的,需要用到tar指令.   gzip 压缩 ...

  7. python核心编程学习记录之文件和输入输出

  8. ElasticSearch 学习记录之如任何设计可扩容的索引结构

    扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...

  9. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

  10. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

随机推荐

  1. laravel 邮件发送

    1.首先你要在qq悠闲中开启你的   SMPT(设置->账户)   获取到你的授权码 2.配置laravel MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_ ...

  2. 肖sir_ 杭州_阿里和蚂蚁和菜鸟和支付宝面试题集锦

    2023-2-7 支付宝蚂蚁保险-第3面1.自我介绍2.你会Java是吧,有用过spring框架开发过工具吗3.那你用Java来干嘛的?做接口自动化用了哪些库和插件,除了testng还用了什么单元测试 ...

  3. Selector 如何关联 channel,以及需要注意的点

    一.创建 selector Selector selector = Selector.open(); 1.一个 selector 可以管理多个 channel . 二.channel 如何注册到 se ...

  4. 解决 使用 params 传递参数 必须 加上 name

    {path:'/blog',name:'blog',params:{is:true}}

  5. memoのMac折腾记录

    memoのMac折腾记录 纯粹是一些零散的学习记录.有错误欢迎指出. 我就是一鼠标党,不会Linux. zsh加载 惭愧,最近才知道bash和zsh是两个不同的终端... 之前看一些mac设置系统环境 ...

  6. flutter RaisedButton 设置最小宽度和高度

    flutter中可以通过ButtonTheme为RaisedButton设置最小宽度,示例代码如下: ButtonTheme( minWidth: 200.0,//设置最小宽度 height: 100 ...

  7. 定长线程池Demo

    1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 4 /** 5 * ...

  8. 关于decimal与double数据类型

    关于double和decimal类型, double类型能表示的精度不如decimal,但是其数据范围比decimal的大. 对于double类型的字段,用sum函数会出现多位小数的情况,比如a+b+ ...

  9. mysql-逗号分隔关联查询

    牛逼plus 每天一个知识点 tableA id num 1 1001,1002 2 1002 tableB id num name 1 1001 A 2 1002 B 想要的结果: id name ...

  10. md5加密中文windows和linux不一致

    测试环境springboot md5加密结果不一致 linux启动的时候 java -Dfile.encoding=utf-8 -jar xxx.jar   即可.主要是编码不一致导致.