做陶瓷的公司网站,刷关键词排名软件有用吗,海口免费网站建设,网站建设中国十强大家好啊#xff0c;这里是c之旅第十弹#xff0c;跟随我的步伐来开始这一篇的学习吧#xff01;
如果有知识性错误#xff0c;欢迎各位指正#xff01;#xff01;一起加油#xff01;#xff01;
创作不易#xff0c;希望大家多多支持哦#xff01; 一.流的概念这里是c之旅第十弹跟随我的步伐来开始这一篇的学习吧
如果有知识性错误欢迎各位指正一起加油
创作不易希望大家多多支持哦 一.流的概念
1、流是一种抽象的概念表示了数据的无结构化传递
2、C流是指数据从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程。
3、C有I/O标准类库用以完成流操作的功能
二.fstream的使用
1.fstream的作用
fstream是C中常用的文件操作类用于文件操作位于名为fstream的头文件中和C语言学过的文件操作作用一样
2.使用fstream类的方法
1、包含头文件fstream并打开命名空间std或使用时std::fstream;
2、使用fstream类来实例化对象通过对象的成员来进行文件操作
3.常用的成员函数
1open(文件名路径,打开方式)//打开文件
其中打开方式有多种模式且可以是多种模式的组合模式有以下示例
ios::in :打开文件用于读取数据。如果文件不存在,则打开出错。
los::out :打开文件用于写入数据。如果文件不存在,则新建该文件;如果文件原来就存在,则打开时清除原来的内容。
ios::app :打开文件,用于在其尾部添加数据。如果文件不存在,则新建该文件。
ios::ate :打开一个已有的文件,并将文件读指针指向文件末尾。如果文件不存在,则打开出错。
ios::trunc :打开文件时会清空内部存储的所有数据,单独使用时与ios:out相同.
ios::binary :以二进制方式打开文件。若不描定此模式,则以文本模式打开。
ios::in|ios::out :打开已存在的文件,既可读取其内容,也可向其写入数据。文件刚打开时,原有内容保持不变,如果文件不存在,则打开出错。
ios::in|ios::out|ios::trunc :打开文件,既可读取其内容,也可向其写入数据,如果文件本来就存在,则打开时清除原来的内容;如果文件不存在,则新建该文件。
2close()
关闭文件
3is_open()
判断文件是否打开成功成功返回1失败返回0
4eof()
判断文件是否到达文件末尾到了文件末尾返回true否则false
5put(字符)
往文件中写入一个字符
eg:
fstream file;//创建类对象来进行文件操作
file.open(测试文件.txt,ios::out);
file.put(a);
char cb;
file.put(c);
6get()
char ch;
file.get(ch);//读取一个字符赋值给ch
chfile.get();//读取一个字符赋值给ch
get(char*str,int num,char delim\n);//读取num个字符赋值给str或在这个期间读到了\n结束
注意最后一条用法和getline类似getline(char*str,int num,char delim\n);//读取num个字符赋值给str或在这个期间读到了\n结束
但是get函数和getline函数是有区别的相同点是两者都可以读取多个字符但是get函数在读取到\n时会对这个换行符进行保留也就是继续使用get函数的话会直接读取到上一个get函数遗留的这个换行符而直接停止读取再次使用get函数才可以进行下一行字符的读取而getline函数则是可以直接将这个换行符跳过遇到后终止读取且将读取位移到下一行处也就是直接连续使用两个getline函数是可以直接连续读取到两行的内容了不需要中间使用一个getline来“吃掉”那个换行符。
7seekp()或seekg()
用于文件指针的移动
file.seekp(5,ios::beg);//从文件开头的位置往后偏移5个字符
在这里数字5表示的是文件指针往后移动5个字节的位置如果是-5那么就是往前移动5个字节的位置
第二个参数是文件指针从哪里开始移动位置有三个这种参数的取值
ios::beg 文件开头 ios::end文件末尾 ios::cur文件指针当前的位置
8tellg()或tellp()
用来获取文件指针的移动大小
int lenfile.tellg();//获取文件指针相对于文件开头移动了多少
9二进制形式读写文件
①write()函数用来写入文件:
write(const char * str,int str_size);
eg写入一个整数:
int a10;
file.write((const char*)a,sizeof(int));
②read()读取文件
read(char * str,int str_size);
eg读取一个整数
int a;
file.read((char*)a,sizeof(int))//读取4个字节的整数赋值给a
三.使用重载运算符与:
类似于cin和cout不过cin和cout是作用于内存的而这个是作用于文件的
fstream file;
int x0;
file.open(示例.txt,ios::out);
file这是一次测试endl;
filexendl;
//上面是向文件内分行写入文字和数字
file.close();
file.open(示例.txt,ios::in);
char str[100];
int temp0;
filestrtemp;//从文件读取注意流的流向写入时是先写入了字符串然后写入了数字所以流先输出数字也就是变量要放在输出流的右边
coutstrendltempendl;