c++标准库中对文件流的有3个类使用:
fstream类,它是 从iostream类派生的,支持对磁盘文件的输入和输出。
ifstream类,它是 从istream类派生的,支持对磁盘文件的输入。
ofstream类,它是 从ostream类派生的,支持对磁盘文件的输出。
输入是指,从磁盘文件输入到内存中调用,输出是,从内存中输出到磁盘文件中。
三者用法大致相同,下面以fstream为例,来进行文件的输入输出。
#include <fstream>
//fstream ffile;//fstream是类,可以使用默认的构造函数,也可以直接选择读取文件
//ffile.open("file.txt",ios::out);//两个参数,文件名,输入输出方式
fstream ffile("file.txt",ios::in);//
ffile.close();//使用后一定要关闭文件流,不然,无法完成输入输出操作
对于输入输出方式,如下:
ios::in 以输入方式打开文件
ios::out 以输出方式打开文件,为默认模式,如果已有文件,则将其中内容清空。
ios::app 以输出方式打开文件,写入数据添加在文件末尾
ios::binary 以二进制方式打开文件,若不指定,则为默认的ASCII方式打开文件,二进制格式时,即可以同时进行输入输出
ios::ate 文件指针指向文件末尾,即只能对文件的最后一个字符进行更改
ios::trunc 如果文件已存在,则删除所有数据,如果文件不存在,则新建一个文件,默认ios::out时,也默认此模式
ios::nocreate 打开文件,若文件不存在,则打开失败
ios::noreplace 若文件不存在,则新建一个文件,若文件存在,则操作失败,即不能对文件进行读写
对于ios::noreplace ios::nocreate,在c++中改成了ios::_Nocreate ios::_Noreplace
当声明只能输入时,进行输出操作是无效的,同理,以输出方式打开是不能进行输入的。
ASCII文件的操作是极其简单的,就如下,类似使用cout的输出与cin的输入一样。但<<和>>只能对char *,char 和const char *进行操作,不能直接输出string。
fstream ffile("file.txt",ios::out|ios::in);//
char get[5];
//ffile<<"awfaw";
for(int i=0;i<5;i++){
ffile>>get[i];
}
ffile.close();//使用后一定要关闭文件流,不然,无法完成输入输出操作
一些细节,ios::ate使文件指针指向文件末尾,若想要输出加ios::out|ios::in。
有put,get,getline等成员函数进行字符的输入输出。
ASCII只能进行输出或只能进行输入,不能同时输入输出。
fstream ffile("file.txt",ios::in|ios::out);//
char get[5];
ffile.put('9');
ffile.get(get[0]);
char str[5][10];
ffile.getline(str[0],10);//储存数组,和读取字数,其实这不是getline,而是一次读入指定数量数据
//ffile.get(get[1]);
ffile.getline(str[1],8);
ffile.close();
对于二进制文件:
使用read和write进行读写操作,二进制文件可以同时进行输入输出。
二进制文件读写时,文件指针会随着输入输出而改变,则有以下几种常用函数来控制文件指针:
tellg() 返回输入指针当前位置
seekg(int 文件中位置)设置输入文件中的指针的位置
seekg(int 偏移量,参考位置) 按照偏移移动到指定位置,参考位置共有三个 ios::beg 文件开头 ios::cur 当前指针位置 ios::end 文件末尾
teelp() 输出指针位置
seekp(int) 设置输出指针位置
seekp(int ,参考位置) 按照偏移设置指针位置
fstream ffile("file.txt",ios::binary|ios::in|ios::out);//输入输出
ffile.seekp(ios::beg);
ffile.write("cc",2);
char r[10];
ffile.seekg(5);//位置是从0开始的
ffile.read(r,2);
ffile.close();
使用“\r\n"进行换行操作。
分享到:
相关推荐
C++文件流操作的读与写,这里是作者初学的一些终结,希望各位海涵啊
c++文件流操作.
C++string常用函数,c++文件流操作,C++中的日期和时间
C++文件流操作整合,希望对大家有帮助!!!
网络协议加批处理加c++文件流,网络协议加批处理加c++文件流
C++文件流 建立工程,实现C++的文件流
C++文件流操作.ppt 程序设计实习 输入输出流和文件操作
用C++ STL 实现的文件处理函数大全,包括一些常用的但标准库中没有字符串处理。内部含有的正则部分,是采用的boost库,不需要的完全可以去掉,不影响其他函数的使用。
主要介绍了C和C++常用的文件读入读出的操作以及使用方法。
C++文件读写流样板
1. 了解标准输入输出流对象的使用方法 2. 掌握利用文件流处理ASCII文件
很详细的C++文件操作 C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 ...
C++文件流: 代码如下:fstream // 文件流ifstream // 输入文件流ofstream // 输出文件流//创建一个文本文件并写入信息//同向屏幕上输出信息一样将信息输出至文件#include<iomanip>#include<fstream>void main(){...
C++文件操作 C++文件的读写fstream // 文件流输入文件流输出文件流 创建一个文本文件并写入信息同向屏幕上输出信息一样将信息输出至文件
C++标准库中文件流读取操作小结 C++标准库中文件流读取操作小结
IOFileDemo使用C++的文件流进行文件管理实例源码。
一看就明白的读写excel文件demo 简单实用
我们老师写的,帮助学习C++IO流
通过本章学习,应理解I/O流、流类与流类体系的概念,...了解C++有关文件的概念及文件的使用方法,理解文件流类体系结构,掌握实现文件操作的成员函数的使用方法,学会文本文件的打开、读/写、关闭等操作的编程方法。
C++实现h264码流保存为FLV文件,支持h264文件转flv文件,也支持保存网络直播码流为flv文件。含例子demo