因为有的数据,数据量极大。或者是你想把编译输出的内容存储起来,就可以使用文件
读文件中内容具体操作
来自C语言详解 FILE文件操作 - 知乎 (zhihu.com)
写入文件具体操作
同样来自 C语言详解 FILE文件操作 - 知乎 (zhihu.com)
当文件关闭时,缓冲区(Buffer)中的信息会被写入磁盘中,也就是写入文件中
来自C++ open 打开文件(含打开模式一览表) (cdsy.xyz)
使用文件时要包含头文件 fstream
创建一个文件流对象(file stream)File
利用这个流对象打开0808.txt,如果没有成功打开,输出打开失败 并立刻退出
注意:打开文件是有可能失败的
向文件0808.txt中写入“向文件中写入内容这一句话”
关闭文件 释放缓冲区 回收资源
以上是使用文件的基本流程
我们是没有设置文件路径的,于是以这种方式会在当前目录打开
如果当前目录下没有这个文件
写入时会创建一个新文件0808.txt在cpp的路径下
注意,只有以这种方式写入时才会创建新文件,读入文件时并不会创建
如果读入时没有这个文件,将打开失败
从0808.txt中读文件,写入0801.txt中
inFile成功读取,返回值为真,可用作条件判断
如果需要将文件保存为二进制格式,用binary
写ios::out|ios::binary 读ios::in|ios::binary
想打开什么类型的文件自己设置后缀 如txt文件=文件名+txt
csv文件=文件名+csv
二进制文件的读写
读文件:
使用istream&read(char *buff,int count);这个函数会逐个字节读取二进制文件中的内容
buff是文件被读取后存放的位置,count是读取的个数
函数的作用:从文件的当前位置读count字节,存放待buff中
写文件:
写文件的方法:ostream &write(char * buff, int count):
作用: 将buff开始的count字节写到文件的当前位置
也就是将buff中的内容写入文件中,写入数量为count
上面的函数是告诉文件当前的位置(想象有一个指针指向当前位置)
seekg是输入用(get)seekp是输出用(put)
mod选定beg(begin) 是指向开头 其他同理
取时间序列就是取时间戳
这个功能是将360度分成36000份,每份给个对应的二进制存入文件sinlist中
取出dVal的首地址,因为&dVal是double类型的指针,所以要强制将其转化为char类型的指针
每个dVal 是double类型,故写入相应的字节
File.seekp(3000*sizeof(double),ios::beg)是从开头查找,找到30度对应的文件
File.read是读出在上面找到的位置的文件
然后利用输出就可以找到sin30°的值了