输入输出流与文件系统
输入输出流
标准IO流
输入操作可以理解为从输入流对象中提取数据,称为提取操作。
cin>>变量1>>变量2>>...>>变量n;
输出操作可以理解为将数据插入到输出流对象中,称为插入操作。
cout<<变量1<<变量2<<...<<变量n;
输出换行可以通过endl控制符和转义字符 "\n"实现。endl不仅有换行功能,还同时会刷新缓冲区。
文件流
文件分为文本文件和二进制文件。文本文件中任何内容总是与字符码表相对应,每个字符都由一个相应的字符码表示。二进制文件不硬性规定与字符码表的对应关系,将内容看成是0/1二进制串,每个数据内容都以其内存中的二进制值表示。
C++通过文件流对象来实现文件操作,程序中可以使用输入文件流ifstream对象从文件中读取数据,使用文件输出流ofstream对象输出数据到文件中。ifstream类和ofstream类在fstream文件中定义,使用文件流对象操作文件时必须包含此文件。
(1)打开文件
ifstream fin(filename,openmode=ios::in);//filename文件名,openmode文件的打开方式
ofstream fout(filename,openmode=ios::out);
文件输入输出方式功能设置
输入输出方式 | 主要功能 |
---|---|
ios::in | 以输入方式打开文件 |
ios::out | 以输出方式打开文件(这是默认方式),如果已有此名字的文件,则将其原有内容全部清除 |
ios::app | 以输出方式打开文件,写入的数据添加在文件末尾 |
ios::ate | 打开一个已有的文件,文件指针指向文件末尾 |
ios::trunc | 打开一个文件,如果文件已存在,则删除其中全部数据;如果文件不存在,则建立新文件 |
ios::binary | 以二进制方式打开一个文件,如不指定此方式则默认为字符码表方式 |
ios::nocreate | 打开一个已有文件,如文件不存在,则打开失败 |
ios::noreplacce | 如果文件不存在则建立新文件,如果文件已存在则操作失败 |
ios::inios::out | 以输入和输出方式打开文件,文件可读可写 |
ios::inios::binary | 以二进制方式打开一个输出文件 |
ios::inios::binar | 以二进制方式打开一个输入文件 |
(2)读取数据/写数据到文件
字符级读写
用成员函数get和put来读写字符
字符串级读写
getline
二进制数据读写
二进制数据的读写可以指定读写的字节个数,用于二进制文件。
可以用流类成员read和write来读写一个或一批词条数据。
文件定位函数
·