




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、93 练习题解答 1在C+的输入输出操作中,“流”的概念如何理解?从流的角度说明什么是提取操作?什么是插入操作? 答:C+语言将输入信息和输出信息都看作为信息流,或者是字符流,或者是二进制码流,因此,称为输人流和输出流。输人流是输入的信息流,输出流是输出的信息流。 从“流”的角度来讲,提取操作是从输入信息流中读取信息,将它存放在机器中;插入操作是向输出信息流中加入信息,将它流向某个指定的设备或文件中去。 2系统预定义的流类对象中,cin和cout的功能是什么? 答:cin是istream类的对象,它表示标准输入流对象,即键盘输入。 cout是ostream类的对象,它表示标准输出流对象,即显示
2、屏幕输出。 3屏幕输出一个字符串有哪些方法?屏幕输出一个字符有哪些方法? 答:屏幕输出一个字符串通常使用下述方法。 (1)标准输出流对象cout和插入运算符。例如, cout ”output a string! n”; (2)使用成员函数write()输出一个字符串。例如, cout.write(”string”,strlen(”string”); 屏幕输出一个字符通常也有两种方法。(1) 使用cout和插入运算符。(2) 例如。 couta,bendl; (2)使用成员函数put()输出一个字符。例如, cout.put(a“)。put(,)put(b)put (n); 4键盘输入一个字符串
3、有哪些方法?键盘输入一个字符有哪些方法? 答:键盘输入一个字符串通常使用下述方法: (1)使用标准输入流对象cin和提取符。 例如 cinab; (2)使用成员函数read()输入一个字符串。 例如 char s80=” "cinread(s,80); (3)使用成员函数getline()输入一行字符串。 例如 char buf80; cingetline(buf,80)5 键盘输入一个字符通常用下述两种方法。 (1)使用cin和提取符。 例如 Char cl,c2; cinclc2; (2)使用成员函数get()输入一个字符。 例如 Char c ; cinget(c); 5如何输
4、出一个int型数值量的不同进位制? 答:输出一个int型数值量的不同进制,可采用下述方法。 例如 int a123: 输出a的十进制数值: coutdecaendl: 默认为十进制。 输出a的八进制数值 coutoctaendl; 输出a的十六进制数值 couthexaendl: 6如何输出一个浮点数的不同精度? 答:设置浮点数的精度有两种方法。 (1)使用成员函数precision()设置浮点数有效数字的位数。 例如 cout.precision(8); 表明输出浮点数的有效数字位数为8位,不足8位后补0,超过8位四舍五人取8位。 (2)使用操作子set spreci sion(int)设置
5、浮点数精度。 例如 coutsetsprecision(8)<<1.23456789<<endl: 输出结果为1.23456789,不含小数点,共8位。 7如何确定输出数据项的宽度? 答:确定输出数据项宽度的方法如下: (1)使用成员函数width()确定输出宽度。 例如 coutWidth(10): 表明下面输出的数据项最小宽度为10个字符位置,超过后按实际宽度,不足补填充符。输出宽度设置仅用一次。不设置宽度时按默认宽度0,即按实际宽度输出。 (2)使用操作子setw(int)设置输出数据项宽度。 例如 coutsetw(10)l 23456endl; 输出结果为 l
6、 23456,其宽度为10。 8采用什么方法打开和关闭磁盘文件? 答:打开磁盘文件有下述两种方法。 (1)创建fstream类的对象,打开已知文件,需指出打开方式。例如,以写方式打开 xy.txt文件,具体格式如下所示。 fstream output(”xytxt”,ios:out); (2)创建ifstream类或ofstream类的对象,只需已知文件名。例如,以读方式打开 xytxt文件,具体格式如下所示。 ifstrcam input(”xytxt”); 关闭磁盘文件的方法如下: 使用成员函数close()。 例如 inputclose( ); 将创建的inPut输入流对象关闭。 9写磁
7、盘文件时有哪几种方法? 答:写磁盘文件的方法如下。 (1)使用输出流对象和插入符,可向打开的文件中写入各种类型的数据。(2)使用输出流对象和成员函数put(),每次向文件中写一个字符。 (3)使用输出流对象和成员函数w rite(),可向文件中写入若干个字符。 10读磁盘文件时有哪几种方法? 答:读磁盘方法如下所示。(1)使用输入流对象和提取符(>>),可以从打开的文件中读取各种类型的数据。(2)使用输入流对象和成员函数get()。每次从打开的文件中读取一个字符。(3)使用输入流对象和成员函数read(),可以从打开的文件中提取一个字符串。11如何确定文件的读指针或写指针的位置?如
8、何改变读指针或写指针的位置?答:c+语言提供了随机访问数据文件的相关操作。由这些操作可以改变读指针和写指针的位置,从而实现随机读写的目地.一个文件被打开后,由于打开方式不同,读,写指针位置也不同,通常是在文件首,有时。例如按追加写打开时,写指针会出现在文件民, iostream类提供3个用来改变读指针位置的成数函数c 它们是 istrcam istrcam:seekg(流中位置 istream istrcam:seekg (偏移量,参照位置> ;streampos istream:tellg();其中,<流中位置>和<偏移量>都是long型量,以字节数为单位。&l
9、t;参照位置>含意如下所示。 cur1 相对当前读指针所指定的位置 beg0 相对于流的开始位置 end2 相对于流的结尾处 streampos 被定义为long型量。 例如 inputseekg(l00,ios:end); 表示使读指针相对文件流尾处前移loo个字节。 成员函数tellg()将返回当前读指针相对于流开始处的字节数。 同样,ostream类中提供了如下3个关于写指针操作的成员函数。 ostream &ostream:seekp(流中位置); ostream &ostream:seekp(偏移量,参照位置; streampos ostream:tellp()
10、; 具体解释同上。 l 2流的错误状态如何处理? 答:在ios类中,定义一个用来记录错误信息的数据成员,称为状态字。该状态字的各位是用不同的错误状态来描述的。 例如 eofbitOx01 表示到达文件尾 failbitOx02 表示IO操作失败 等等。 在ios类中又定义了检测流状态字的各种成员函数。 例如 int eof() 该函数返回非零值表示已到文件尾 int fail() 如果faiIbit位被设置,该函数返回非零值。 等等。 利用上述成员函数检测流的错误状态,并进行处理。 94 作业题解答 一、选择填空 1进行文件操作时需要包含( )文件。 A:iostreamh Bfstreamh
11、 C stdioh Dstdlibh 答: B。 2使用操作子对数据进行格式输出时,应包含( )文件。 A iostreamh B fstreamh C。 iomaniph D stdlibh 答:C。 3已知:int a,*pa&a;输出指针pa十进制的地址值的方法是( )。 A coutpa B cout*pa Ccout&pa Dcoutlong(&pa) 答:D。 4下列输出字符A的方法中,( )是错误的。 Acoutput(A) BcoutA C coutput(A) D char AA;coutA 答:A。 5关于getline()函数的下列描述中,( )是
12、错的。 A该函数是用来从键盘上读取字符串的 B该函数读取的字符串长度是受限制的 C该函数读取字符串时遇到终止符便停止 D该函数中所使用的终止符只能是换行符 答:D。 6关于read()函数的下列描述中,( )是对的。 A该函数只能从键盘输人中获取字符串 B该函数所获取的字符多少是不受限制的 C该函数只能用于文本文件的操作中 D该函数只能按规定读取所指定的字符数 答:B。 7在ios中提供控制格式的标志位中,( )是转换为十六进制形式的标志位。 A hex B oct C dcc D。1eft 答:A。 8控制格式输出输入的操作子中,( )是设置域宽的。 Aws Boct Csetfill()
13、D,setw() 答:D。 9磁盘文件操作中,打开磁盘文件的访问方式常量中,( )是以追加方式打开文件的。 A in B out C app D ate 答:C。 10下列函数中,( )是对文件进行写操作的。 Aget() Bread() Cseekg() Dput() 答:D。 二、判断下列描述的正确性,对者划,错者划× 1使用提取符()可以输出各种基本数据类型的变量的值,也可以输出指针值。 ×2预定义的插入符从键盘上接收数据是不带缓冲区的。 3预定义的提取符和插入符是可以重载的。 ×4记录流的当前格式化状态的标志字中每一位用于记录一种格式,这种格式是不能被设置
14、或清除的。 5设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是cout。 6操作子本身是一个对象,它可以直接被提取符或插入符操作。 7get()函数不能从流中提取终止字符,终止字符仍留在流中。getline()函数可以从流中提取终止字符,但终止字被丢弃。 ×8ios类的成员函数clear()是用来清除整个屏幕的。 9使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象。 10使用关闭文件函数close()关闭一个文件时,但流对象仍存在。 11以app方式打开文件时,当前的读指针和写指针都定位于文件尾。 ×12
15、打开ASCII码流文件和二进制流文件时,打开方式是相同的。 13read()和write()函数可以读写文本文件,也可以读写二进制文件。 14流的状态包含流的内容、长度和下一次提取或插入操作的当前位置。 ×15seekg()函数和seekp()函数分别用来定位读指针和写指针的。如果使用 seek()函数可以同时定义读写指针。 三、分析下列程序的输出结果 1 #includeiostreamh #includefstreamh #includestdlibh void main( )fstream outfile,infile; outfile.open(“text.dat”,ios:
16、out);if(!outfile)cout<<”text.dat cant open.n”;abort();outfile<<”123456789n”;outfile<<”aaabbbbbbbbcccn”<<”dddddfffeeeeggggghhhn”;outfile<<”okn”;outfile.close();infile.open(”tcxtdat”,ios:in);if(!infile)cout”file cant open.n”;abort(); char textline80;While(!infileeof() inf
17、ilegctline(textline,sizeof(textline); couttextlineendl; 运行该程序输出如下结果。 1 2 3 4 5 6 7 8 9 a a a b b b b b b b c c c d d d d d f f f c c c c g g g g g h h h o k! 分析: 该程序中先打开文件textdat,打开方式是写,判断打开成功后,向该文件中输入行字符串。然后,将该文件关闭。 接着,以读方式打开textdat文件,判断成功后,将通过while循环语句。逐行读:textdat文件中的内容,并输出显示在屏幕上。 这里,使用了打开、关闭文件的操作
18、以及对打开文件的读、写操作。 2 #includeiostreamh #includefstreamh#include<stdlib.h>void main()fstream file1;file1.open(“text1.dat”,ios:out|ios:in);if(!filel)cout<<”text1.dat cant open.n”;abort();char textline=”123456789abcdefghijkl.n”;for(int i=0 ; i<sizeof(textline);i+) file1.seekg(0);/ 将读指针移至文件开始
19、char ch; while(filel.get(ch)coutch;filelclose( ); 运行该程序的输出结果如下所示。 1 23456789a b c d e f g h ij k1 分析: 该程序的特点是打开文件textldat时,采用了又写又读的打开方式。打开成功后, 先使用写字符函数put(),将字符数组textline中的字符串写入该文件。 然后,使用下列语句 filelseekg(0); 将读指针移至文件开始,接着使用读字符函数get()从文件中读出字符,并显示在屏幕上。 该程序中,对文件textldat的读写只打开一次。 #includestrstreahvoid ma
20、in() ostrstream ss: ss”Hi,good morning”; ssends: char * bufss.str( ); coutbufendI;de1ete buf; 运行该程序输出结果如下所示。 Hi, good morning! 分析: 程序中首先创建一个ostrstream类的对象ss,ss是一个用来存放插人数据的数组对象。接着,向s s中存人字符串”Hi,g ood morning!”。又增加一个字符串结束符o,可用end2表示。 程序中又定义个字符指针使用ss数组对象的指针值进行初始化,这一功能用成员函数sltr()来实现的。最后。输出显示一个字符串(buf中的字符串)在屏幕上。 4#includeiostream.h> #
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九类职业考试试题及答案
- 广东省揭阳市揭东区2021-2022学年高一下学期期末生物含答案
- 四川省叙永第一中学校2023-2024学年高二上学期1月期末考试物理试题 含解析
- 浙江省名校联盟2023-2024学年高三上学期12月联考政治含解析
- 二年级数学期末试卷汇编
- 政治生活 第一单元知识点
- 职业技术学院《质量管理》课程标准
- 职业技术学校工程管理专业部十四五专业建设规划
- 2025年中国磁驱动齿轮泵市场调查研究报告
- 2025-2030中国烷基环氧基聚醚市场现状规模与投资发展策略研究报告
- 药品生产企业质量管理评审要求
- 交响音乐赏析智慧树知到期末考试答案章节答案2024年西安交通大学
- (权变)领导行为理论
- DZ∕T 0282-2015 水文地质调查规范(1:50000)(正式版)
- DZ∕T 0248-2014 岩石地球化学测量技术规程(正式版)
- JTG-T 3331-07-2024 公路膨胀土路基设计与施工技术规范
- 行政复议法-形考作业1-国开(ZJ)-参考资料
- 山东省青岛市崂山区育才学校2023-2024学年下学期奇点计划选拔考试八年级物理试卷
- 工程维保服务内容措施及售后服务专项方案
- 管片基础知识与管片选型
- 产品标识和可追溯性管理培训
评论
0/150
提交评论