最新C++NOIP竞赛7课件PPT.ppt

最新C++NOIP竞赛7课件PPT.ppt

ID:62066460

大小:1.09 MB

页数:60页

时间:2021-04-14

最新C++NOIP竞赛7课件PPT.ppt_第1页
最新C++NOIP竞赛7课件PPT.ppt_第2页
最新C++NOIP竞赛7课件PPT.ppt_第3页
最新C++NOIP竞赛7课件PPT.ppt_第4页
最新C++NOIP竞赛7课件PPT.ppt_第5页
资源描述:

《最新C++NOIP竞赛7课件PPT.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++NOIP竞赛7第一节 文件操作C++语言提供了一批用于文件操作的标准函数,本节介绍的文件打开函数fopen和函数freopen,它们都包含于标准库cstdio中,文件操作基本步骤如下:(1)打开文件,将文件指针指向文件,决定打开文件类型;(2)对文件进行读、写操作;(3)在使用完文件后,关闭文件。一、重定向版【命令格式】FILE*freopen(constchar*filename,constchar*mode,FILE*stream);【参数说明】filename:要打开的文件名mode:文件打开的模

2、式,和fopen中的模式(r/w)相同stream:文件指针,通常使用标准流文件(stdin/stdout/stderr)其中stdin是标准输入流,默认为键盘;stdout是标准输出流,默认为屏幕;stderr是标准错误流,一般把屏幕设为默认。通过调用freopen,就可以修改标准流文件的默认值,实现重定向。例7.1 从in.txt文件中读入数据,把它们的和保存out.txt文件中。#includeintmain(){freopen("in.txt","r",stdin);//定义输入文件名

3、freopen("out.txt","w",stdout);//定义输出文件名inttemp,sum=0;while(scanf("%d",&temp)==1)//(cin>>temp)从输入文件中读入数据//在C++中非0为真{sum=sum+temp;}printf("%d",sum);//cout<>temp)和(

4、scanf("%d",&temp)==1)主要是用于判断数据是否已经读完,以便及时终止循环。还可以用成员函数eof来判断是否达到数据流的末尾。对scanf、printf和cin、cout语句都适用。二、fopen版重定向用起来很方便,但并不是所有算法竞赛都允许读写文件。甚至有的竞赛允许访问文件,但不允许使用freopen这样的重定向方式读写文件,可以使用fopen版,对scanf和printf语句适用。程序如下:例7.2#includeusingnamespacestd;intmain(){F

5、ILE*fin,*fout;fin=fopen("in.txt","rb");//定义输入文件名fout=fopen("out.txt","wb");//定义输出文件名inttemp,sum=0;while(fscanf(fin,"%d",&temp)==1)//从输入文件中读入数据{sum=sum+temp;}fprintf(fout,"%d",sum);//cout<

6、用管FILE*为何物),把scanf改成fscanf,第一个参数为fin;把printf改成fprintf,第一个参数为fout,最后执行fclose,关闭两个文件。重定向和fopen两种方法各有优劣。重定向的方法写起来简单、自然,但是不能同时读写文件和标准输入输出;fopen的写法稍显繁琐,但是灵活性比较大(例如可以反复打开并读写文件)。顺便说一句,如果把fopen版的程序改成读写标准输入输出,只需赋值fin=stdin;fout=stdout;即可,不要调用fopen和fclose。例7.3程序如下:#i

7、ncludeusingnamespacestd;intmain(){FILE*fin,*fout;fin=stdin;fout=stdout;inttemp,sum=0;while(fscanf(fin,"%d",&temp)==1)//从输入文件中读入数据{sum=sum+temp;}fprintf(fout,"%d",sum);return0;}三、文件输入输出流在C++中,文件输入流(ifstream)和文件输出流(ofstream)的类,它们的默认输入输出设备都是磁盘文件。C++可

8、以在创建对象时,设定输入或输出到哪个文件。由于这些类的定义是在fstream中进行的,因此,在使用这此类进行输入输出操作时,必须要在程序的首部利用#include指令包进fstream头文件。例如:若想用fin作为输入对象,fout作为输出对象,则可以使用如下定义:ifstreamfin("输入文件名.扩展名");ofstreamfout("输出文件名.扩展名");例7.4程序如下:#include

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。