标准输入输出流与文件输入输出流的关系图:

文件输出流头文件“ofstream/fstream”,文件输入流头文件“ifstream/fstream”

1.1.打开文件方式:流类 对象名(文件名,方式); //文件路径填写方式"D\\新建文件夹\\X目录\\Y.bat";

1.2.打开文件用  对象名.open(文件路径,ios::in); //以输出流/读方式打开文件;

1.3.打开文件用  对象名.open(文件路径,ios::in); //以输入流/写方式打开文件;

1.4.打开文件用  对象名.open(文件路径,ios::in|ios::out); //以输入输出流/读写方式打开文件;

1.5.打开文件用  对象名.open(文件路径,ios::app); //以追加/写方式打开文件;

1.6.打开二进制文件 对象名.open(文件路径,ios::binary|ios::in|ios::out);

2.关闭文件用  对象名.close();

3.1.判断文件结束符 对象名.eof();

3.2.判断文件结束语句 long posEnd=对象名.tellg/p(); while(对象名.tellg/g()!=posEnd);

4.1.这里的从磁盘读取一行数据到“输入文件缓冲区”用 文件对象名.getline(字符串变量,字符串长度)函数

4.2.istream类的公有成员函数

函数              功能                                  函数          功能

read     无格式输入指定字节数                gcount       统计最后输入的字符个数

get       从流中提取字符,包括空格         eatwhite     忽略前导空格

getline   从流中提取一行字符                  seekg         移动输入流指针

ignore   提取并丢弃流中指定字符            tellg          返回输入流中指定位置的指针值

peek    返回流中下一个字符,但不从       operator>> 提取运算符

流中删除

4.3.ostream类的公有成员函数

函数       功能                                  函数                功能

put       无格式,插入一个字节          seekp             移动输出流指针

write    无格式,插入一个字节列       tellp                返回输出流中指定位置的指针值

flush      刷新输出流                        operator<<      插入运算符

例子:

//1. 新建并录入数据到文件

#include<iostream.h>

#include<stdlib.h>

#include<fstream.h>

void main(){

fstream iofs;

char *p,str[80],str1[80];

p=&str[1];

cin>>p;

iofs.open(p,ios::in|ios::out);

if(!iofs){ cout<<"Open iofs error!"<<endl; return ; }

while(cin>>str&&!iofs.eof()){

iofs<<str<<endl; }

iofs.close();

}

//2. 显示文件里的内容,判断文件结束符为iofs.eof()函数

/*

#include<iostream.h>

#include<stdlib.h>

#include<fstream.h>

void main(){

fstream iofs;

char *p,str[80],str1[80];

p=&str[1];

cin>>p;

iofs.open(p,ios::in);

iofs.getline(str1,80);

//do{ cout<<str1<<endl; iofs.getline(str1,80); }while(!iofs.eof());

while(!iofs.eof()){ cout<<str1<<endl; iofs.getline(str1,80); }

}*/

//3.追加数据到文件

/*

#include<iostream.h>

#include<stdlib.h>

#include<fstream.h>

void main(){

fstream iofs;

char *p,str[80],str1[80];

p=&str[1];

cin>>p;

iofs.open(p,ios::app);

if(!iofs){ cout<<"Open iofs error!"<<endl; return ;}

while(cin>>str){

iofs<<str<<endl; }

iofs.close();

} */

C++->输入输出文件流的相关函数的更多相关文章

  1. C++ 输入输出文件流(ifstream&ofstream)

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O, ...

  2. c语言中的文件流

    一.打开和关闭文件 #include int main( void ) { FILE* pReadFile = fopen( "E:\\mytest.txt", "r&q ...

  3. ca76a_c++_流文件打开输入输出文件模式p773

    /*ca76a_c++_流文件打开输入输出文件模式利用文件流打开文件进行输入与输出时的选项in.out.app(附加模式).ate((end)文件打开后,定于文件结尾).trunc(裁剪).binar ...

  4. java 输入输出IO流 RandomAccessFile文件的任意文件指针位置地方来读写数据

    RandomAccessFile的介绍: RandomAccessFile是Java输入输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出 ...

  5. Java总结——文件&流

    最近学习了Java的输入输出,脑子里有两点乱,不过比之前的思路好像清晰了很多.脑子刚刚接收这些信息的时候,整个就是懵逼的,又是文件又是流的,文件到底干嘛的,流到底干嘛的?恩,后来,想了想,其实也不难理 ...

  6. C++文件流类与文件流对象

    文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件 ...

  7. C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

    迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...

  8. java的文件流:字节流(FileInputStream、FileOutputStream)和字符流(FileReader、FileWriter)。

    java的输入输出建立在4个抽象类的基础上:InputStream.OutputStream.Reader.Writer.InputSream和OutputStream被设计成字节流类,而Reader ...

  9. c#基础语言编程-文件流操作

    引言 在System.IO 命名空间下提供了一系列的类,我们可以通过相应的类进行文件.目录.数据流的操作. 1.File类:提供用于创建.复制.删除.移动和打开文件的静态方法.File类 2.File ...

随机推荐

  1. 导弹拦截(dp复习)

    题目描述:求最长下降子序列的长度 in: 71 7 3 5 9 4 8 out: 4 解释:1 3 4 8/1 3 5 8 长度为四 这让我想到了hdu上导弹拦截那道题,是求最长上升子序列长度 其转移 ...

  2. oracle的网络连接

    NAMES.DIRECTORY_PATH常用的值有tnsnames,hostname,onames和ezconnect和 ldap,cds,nis不常用的值,默认值是(tnsnames,onames, ...

  3. RFC笔记,IPv6 Node Requirements

    Request for Comments: 6434,IPv6 Node Requirements 路由器节点必须能够生成链路本地地址 5.9.2. IPv6 Stateless Address Au ...

  4. dubbo-admin dubbo-monitor 安装

    dubbo-admin: 因为我们不能直观的看到dubbo和zk上到底有什么服务(提供者),所以我们需要一个可视化工具来方便我们管理每一个服务和每一个节点.dubbo-admin 就是dubbo的管理 ...

  5. centos7.5下yum安装php-5.6.40(LNMP环境)

    cd /etc/yum.repos.d/ yum -y install epel-release #<===安装centos7下php5.6的epel和remi源 rpm -ivh http:/ ...

  6. ab使用详解—如何使用apache性能测试工具进行压力测试

    作为后端工程师,除了实现业务需求之外,需要考虑的就是自己写的服务,在大并发下是否能正常运行了.但是,在一般开发情况下,没那么多大并发情况让你测试,那该怎么办呢? 这时候,我们就可以用到apache的压 ...

  7. IT运维软件免费送 智和信通战疫活动火热进行中

    突如其来的“新型冠状病毒”疫情牵动了全国人民的心,这是一场与病毒抗争,为生命逆行与时间赛跑的战役.举国上下众志成城面对疫情,在线医疗.在线教学.在线办公.在线会议.电商销售成为热点.线上经济的火热给企 ...

  8. thinkPHP中Model的字段映射问题

    在model定义中不要自己定义相应的字段变量,因为一旦定义,之后的赋值会直接赋给自己定义的属性,但实际上model抽象类重写了__set()方法,将未定义的属性存入了$data里面,写入数据库是也会从 ...

  9. C# protobuf自动更新cs文件

    网上的教程大都是手动通过protoc编译, 比较难用 给当前工程添加"Google.Protobuf"和"Grpc.Tools"的引用(通过nuget), 然后 ...

  10. MySQL之ERROR 1558 (HY000): Column count of mysql.user is wrong.解决方案

    一.场景 我本想在MySQL5.7上执行下列语句创建一个新用户: CREATE USER "remote"@"%" IDENTIFIED BY "12 ...