第13章-C++输入输出流《C++程序设计基础教程》课件PPT课件下载推荐.pptx
- 文档编号:13126205
- 上传时间:2022-10-06
- 格式:PPTX
- 页数:58
- 大小:484.30KB
第13章-C++输入输出流《C++程序设计基础教程》课件PPT课件下载推荐.pptx
《第13章-C++输入输出流《C++程序设计基础教程》课件PPT课件下载推荐.pptx》由会员分享,可在线阅读,更多相关《第13章-C++输入输出流《C++程序设计基础教程》课件PPT课件下载推荐.pptx(58页珍藏版)》请在冰豆网上搜索。
标准错误输出,没有缓冲。
clog:
类似于cerr,有缓冲。
13.1.3C+的输入输出流,6,1.iostream类库中有关的类,7,1.iostream类库中有关的类,8,13.2标准输出流,标准输出流:
流向标准输出设备的数据。
1.cout(consoleoutput)流对象cout流开辟内存缓冲区,用来存放流数据,遇endl时,不论缓冲区是否已满,立即输出流中所有数据,然后插入一个换行符,并刷新流(清空缓冲区)。
2.cerr流对象作用:
向标准错误设备输出有关出错信息。
3.clog流对象作用:
和cerr相同。
区别:
cerr不经过缓冲区,直接向显示器上输出有关信息,而clog的信息存放在缓冲区,缓冲区满后或遇endl时输出。
9,例13.1一元二次方程ax2+bx+c=0,#includeusingnamespacestd;
intmain()couthelloworld-coutendl;
cerrhelloworld-cerrendl;
return0;
testfilecout.txt,testfilecerr.txt,10,13.2.2格式输出,1.使用控制符控制输出格式输出数据的控制符见书中表13.3。
注:
这些控制符是在头文件iomanip中定义的,因而程序中应当包含iomanip。
11,例13.3用流控制成员函数输出数据,intmain()inta=21cout.setf(ios:
showbase);
/显示基数符号(0x或0)coutdec:
aendl;
/默认十进制形式cout.unsetf(ios:
dec);
/终止十进制的格式设置cout.setf(ios:
hex);
/以十六进制输出的状态couthex:
/以十六进制形式输出acout.unsetf(ios:
/终止十六进制的格式设置cout.setf(ios:
oct);
/设置以八进制输出的状态coutoct:
/以八进制形式输出a,12,cout.unseft(ios:
char*pt=China;
/pt指向字符串Chinacout.width(10);
/指定域宽为10coutptendl;
/输出字符串cout.width(10);
/指定域宽为10cout.fill(*);
/指定空白处以*填充coutptendl;
/输出字符串doublepi=22.0/7.0;
/输出pi值cout.setf(ios:
scientific);
/指定用科学记数法输出coutpi=;
/输出pi=,例13.3用流控制成员函数输出数据,13,cout.width(14);
/指定域宽为14coutpiendl;
/输出pi值cout.unsetf(ios:
/终止科学记数法状态cout.setf(ios:
fixed);
/指定用定点形式输出cout.width(12);
/指定域宽为12cout.setf(ios:
showpos);
/正数输出+号cout.setf(ios:
internal);
/数符出现在左侧cout.precision(6);
/保留6位小数coutpiendl;
/输出pi,注意数符+的位置,例13.3用流控制成员函数输出数据,14,13.3标准输入流,从标准输入设备(键盘)流向程序的数据。
istream类库为标准输入流提供了数种输入功能13.3.1cin流类istream的对象,从标准输入设备获取数据。
提取数据时跳过空格、tab键、换行符等。
注:
只有按回车键后,该行数据才被送入键盘缓冲区,形成输入流。
15,
(1)不带参数的get函数形式:
cin.get()作用:
从输入流中提取一字符,函数返回读入字符。
遇到文件结束符,返回EOF。
(2)带一个参数的get函数形式:
cin.get(ch)作用:
从输入流中读取一字符,赋给变量ch。
成功则非0(真),失败(遇文件结束符)则0(假)。
1.用get函数读入一个字符,16,例13.6用get函数读入字符,intmain()intc;
while(c=cin.get()!
=EOF)cout.put(c);
intmain()charc;
while(cin.get(c)cout.put(c);
17,(3)有3个参数的get函数,调用形式cin.get(字符数组,字符个数n,终止字符)或cin.get(字符指针,字符个数n,终止字符)作用:
从输入流中读取n-1个字符,赋给指定字符数组,若在读取n-1个字符前遇到指定的终止字符,则提前结束。
成功返真,失败返假。
18,voidmain()charch20;
coutenterasentence:
endl;
cin.get(ch,10,n);
/指定换行符为终止字符coutchendl;
enterasentence:
IstudyC+veryhard.Istudy,(3)有3个参数的get函数,19,2.用成员函数getline函数读入一行字符,作用:
从输入流中读取一行字符。
用法:
与带3个参数的get函数类似。
cin.getline(字符数组(或字符指针),字符个数n,终止标志字符),20,例13.7用getline函数读入一行字符,intmain()charch20;
coutch;
coutThestringreadwithcinis:
chendl;
cin.getline(ch,20,/);
/读19个字符或遇/结束coutThesecondpartis:
cin.getline(ch,20);
/读19个字符或遇/n结束coutThethirdpartis:
cinPKcin.getline(),21,13.3.3istream类的其他成员函数,1.eof函数调用形式:
cin.eof();
如果到达文件末尾(遇文件结束符),函数值为非0(真),否则为0(假)。
2.peek函数作用:
观测下一个字符。
调用形式:
cin.peek();
注意:
只是观测,指针位置不变。
22,eek和putback函数,3.putback函数调用形式:
cin.putback(ch);
作用:
将前面用get或getline从输入流中读取字符ch返回到输入流,插入到当前指针位置。
4.ignore函数调用形式:
cin,ignore(n,终止字符)作用:
跳过输入流中n个字符,或遇指定终止符提前结束(跳过包括终止符在内的若干字符)。
ighore(5,A),23,intmain()charch20;
cin.get(ch,20,/);
coutThefirstpartis:
cin.ignore();
/跳过输入流中一个字符cin.get(ch,20,/);
coutThesecondpartis:
IlikeC+./IstudyC+./Iamhappy.Thefirstpartis:
IlikeC+.Thesecondpartis:
IstudyC+.,例13.10用ignore函数跳过输入流中的字符,24,13.3文件流,13.4.1文件的概念文件:
存储在外部介质上数据的集合。
属性:
名字,类型、属主、创建日期、修改日期、访问权限等。
分类1用户角度程序文件(programfile)数据文件(datafile)分类2数据的组织形式ASCII文件:
文本文件、字符文件二进制文件:
内部格式文件、字节文件,25,13.3.2文件流的操作,文件流:
以外存文件为IO对象的数据流。
输出文件流:
从内存流向外存文件的数据输入文件流:
从外存文件流向内存的数据每个文件流都有一个内存缓冲区对应。
文件流与文件:
文件流本身不是文件,而只是以文件为输入输出对象的流。
1)ifstream:
istream派生类。
支持从文件的输入。
2)ofstream:
ostream派生类。
支持向文件的输出。
3)fstream:
iostream派生类。
支持文件的输入输出。
对磁盘文件的操作通过文件流对象实现。
13.3.2文件流的操作,在C+中对文件进行操作分为以下几个步骤:
(1)建立文件流对象;
(2)打开或建立文件;
(3)进行读写操作;
(4)关闭文件;
前两步也可合并为一步。
27,13.4.3文件的打开与关闭,1.打开磁盘文件在文件读写之前做必要的准备工作。
(1)为文件流对象和指定磁盘文件建立关联。
(2)指定文件的工作方式。
(1)调用文件流的成员函数openofstreamoutfile;
/定义ofstream类对象outfile.open(f1.dat,ios:
out);
(2)在定义文件流对象时指定参数oftreamoutfile(f1.dat,ios:
28,若open函数调用失败,返回值为0(假);
若构造函数打开失败,则流对象的值为0。
2.关闭磁盘文件成员函数close。
outfile.close();
关闭:
解除磁盘文件与文件流的关联。
13.4.3文件的打开与关闭,29,13.4.4对ASCII文件的操作,ASCII文件的读写操作
(1)用文件流对象和流插入运算符输出输入标准类型的数据。
(2)用文件流的put,get,getline等成员函数进行字符的输入输出。
30,例13.11从键盘输入10个整数到文件,#includevoidmain()inta10;
ofstreamoutfile(f1.dat,ios:
if(!
outfile)/如失败,返回0值cerrai;
outfileai;
/向磁盘文件输出数据outfile.close();
/关闭文件,enter10integernumbers:
13524610879,31,例13.12文件中读入10个整数放在数组,#includeintmain()inta10,max,i,order;
ifstreaminfile(f1.dat,ios:
in);
infile)cerrai;
/从文件读入10个整数,放在a数组coutai;
max=a0;
order=0;
32,for(i=1;
imax)max=ai;
/将当前最大值放在max中order=i;
/将最大值的序号放在order中coutmax=maxendlorder=order;
infile.close();
13524610879max=10order=6,例13.12,例13.13写入文本文件的例子。
#includevoidmain()ofstreamfile(file.txt,ios:
out|ios
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计基础教程 13 C+ 输入输出 程序设计 基础教程 课件