面向对象程序设计语言C++_-_第8章_流库
程序设计概论期末考试范围答案

第一章程序设计基础知识一、基础题1.以下关于算法的描述中,错误的是(D)A.算法中描述的操作都是用已经实现的基本运算组成的B。
算法必须由计算机程序实现C.算法应该易于理解、易于实现和易于调试D.算法不应该处理输入的非法数据2.以下哪项不属于数据的逻辑结构(A)A.单链表B.输C.图D.集合5.(B)程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。
A.面向对象B.结构化C.函数式D.事件驱动6.强调以现实世界中的客观事物为中心来建立问题域模型,这种程序设计方法成为(C)A.事件驱动程序设计B.结构化程序设计C.面向对象程序设计D.函数式程序设计7.以下程序段是用(B)程序设计语言编写的。
MOV AX,ASUB AX,BMOV C,AXHLTA.机器B.汇编C.C#D.Java10.下列关于解决方案的叙述中,不正确的是(B).A.一个解决方案可以包含多个项目B.解决方案可以包含的项目只能是类库C.利用解决方案资源管理器可以管理解决方案D.解决方案可以将多个项目组织在一起形成一个工作单元二、应用题1.简述程序设计的步骤.答:(1)分析问题:明确要解决什么问题(2) 设计算法:数据结构和算法(3)编写程序:将算法用程序设计语言描述出来(4)调试运行:语法错误、语义错误、异常4.简述C#语言的特点.答:(1)完全面向对象:具有面向对象语言的一切特性(2)简单易学:熟悉C、C++或Java即可掌握C#语言(3)安全:避免使用指针;自动内存管理和垃圾回收;使用委托取代函数指针.(4)跨平台:可以运行在不同操作系统上。
(5)跨语言:与任何支持。
NET的语言互相交换信息(6)强大的Web编程能力: Web应用程序第三章数据与变量一、基础题1。
以下不属于C#语言中基本数据类型的是(D)A.整数类型B。
浮点类型C.字符类型D。
枚举类型2.使用变量a存放数据-389,则将变量a定义为(B)类型最为合适.A。
面向对象程序设计C - 东华大学

龚涛
13
东华大学信息科学与技术学院
第8章 多态性和虚函数 8.6 虚析构函数
在析构函数前面加上关键字virtual进行说明, 称该析构函数为虚析构函数。
静态联编和动态联编都属于多态性,它们是在不同阶段对不同 实现进行不同的选择。
龚涛
10
东华大学信息科学与技术学院
第8章 多态性和虚函数 8.4 虚函数
虚函数是动态联编的基础。虚函数是成员函数,而 且是非static的成员函数。说明虚函数的方法如下:
virtual <类型说明符> <函数名>(<参数表>) 其中,被关键字virtual说明的函数称为虚函数。
重载函数的意义在于它可以用相同的名字访问一组 相互关联的函数,由编译程序来进行选择,因而有助于 解决程序复杂性的问题。
(1) 不要使用重载函数来描述毫不相干的函数。
(2) 在类中,构造函数可以重载,普通成员函数也可 以重载。
(3) 在重载函数中使用参数的默认值要避免二义性。
龚涛
4
东华大学信息科学与技术学院
由于C语言的数组中没有保存其大小,因此,不能 对数组元素进行存取范围的检查,无法保证给数组动态 赋值不会越界。利用C++语言的类可以定义一种更安全、 功能更强的数组类型。为此,为该类定义重载运算符[]。
2. 重载增1减1运算符
增1减1运算符是单目运算符,分为前缀运算和后缀 运算两种。为了区分这两种运算,将后缀运算视为双目 运算符。表达式obj++或obj—被看作obj++0或obj—0。
《C语言程序设计教程(第二版)》习题答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案说明1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。
2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick\n");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d\n",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。
递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。
*/{printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。
郑大远程面向对象程序设计试题

《面向对象程序设计》第12章在线测试第一题、单项选择题(每题1分,5道题共5分)1、面向对象软件开发中使用的OOD表示()A、面向对象分析B、面向对象设计C、面向对象语言D、面向对象方法2、在面向对象方法中,对象执行它的操作是通过()A、自动执行B、接受消息请求C、由外部强制执行D、外界直接访问其成员3、对象的两大要素是()A、数据和数据结构B、名字和函数C、属性和操作D、操作和方法4、关于对象模型的说法正确的事()A、对象模型是类、对象、类或对象之B、对象模型表示系统静态的数据性质间关系的定义集C、对象模型表示类/对象之间的结构D、对象模型是客观对象的物理模型关系5、面向对象分析的任务是()A、需求分析B、建立用例模型C、定义问题领域类D、定义角色第二题、多项选择题(每题2分,5道题共10分)1、下面那些是面向对象的特征?()A、结构B、类C、重用D、继承2、下面哪些属于UML的图( )A、用例图B、类图C、结构图D、流程图3、关于封装的说法正确的是()A、封装实现了信息隐藏B、封装使对象与外界隔绝C、封装使类不可见D、封装将对象的属性和操作结合在一起4、对象之间存在的关系包括()A、部分与整体B、一般与特殊C、实例连接D、消息连接5、下面的说法正确的是()A、软件就是程序,程序就是软件B、软件开发的过程就是程序设计的过程C、软件是程序、支持程序运行的数据以及与程序有关的文档资料的集合。
D、程序设计仅仅是软件开发过程的一个阶段。
第三题、判断题(每题1分,5道题共5分)1、面向对象设计过程一般仍分为结构设计和详细设计。
正确错误2、UML 是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示。
正确错误3、UML不是一种可视化的程序设计语言而是一种可视化的建模语言.正确错误用若干个视图构造系统的模型,每个视图描述系统的一个方面。
正确错误、类的关联关系通常采用函数设计方式。
正确错误《面向对象程序设计》第11章在线测试A BC D、允许程序员以相同的方式处理不同的数据结构的是()A BC Dlist属于(A BC Dmap)属于A BC D、多重映射(multimapA BC DC、排序算法D、数值计算算法2、下面属于容器的头文件是()A、vectorB、listC、queneD、set3、下面的说法正确的是()A、STL中有sort函数,所以程序员不能定义名字叫sort的函数B、STL中的sort函数在名字空间之外C、程序员可以在自定义的名字空间内定义sort函数D、使用STL的sort函数可以在源程序的开头加入using namespace std4、下面属于顺序容器的是()A、向量B、双队列C、堆栈D、列表5、如果char str[]=“China!Great Wall”,生成string类型s并且s的字符串内容也是“China!Gr eat Wall”的语句是()A、string s(str);B、string s(str,1);C、string s(str, 1,11);D、string s=str;第三题、判断题(每题1分,5道题共5分)1、迭代器是算法访问容器的中介。
面向对象的程序设计语言――C++(第二版)-习题参考答案

面向对象的程序设计语言――C++(第二版)-习题参考答案课后习题答案以及代码习题参考答案第1章1.填空题C++语言概述(1)函数说明,函数体(2)声明区,主程序区,函数定义区(3)多态性(4)namespace,using(5)std(6)cin,(7)//(8)对数据的操作2.判断题(1)对(2)错(3)错(4)错(5)错3.改错题(1)没有函数体,应改为void main() {};(2)语句没有分号,应改为using namespace myspace;(3)cout和操作符共同完成输出的功能,应改为cout“ Input your name:";(4)应改为#include iostream.h4.简答题5.编程题(略)(略)第2章1.选择题基本数据类型、运算符与表达式(1)B (2)D (3)B (4)D (5)B课后习题答案以及代码2.简答题(1)(a)、(c)(e)、(f)、(g)、(h)、(i)(2)(a)、(g)、(i)、(j)(3)(a)5.5(b)0(c)20(d)0,0(e)1(f)1,2(g)3(h)-40(i)2(j)3(k)s1='0's1='9'(l)N!=03.读程序写结果(1)0,15(2)(1、1、1),(-1、-1、-1)(3)(a)a*a+2*a*b+b*b(b)4.0/3.0*3.__-__R*R*R(c)5.0/9.0*(F-32)(d)b=ab=c(4)364143(5)x=14.编程题(略)第3章1.选择题(1)B (2)A (3)A (4)C2.判断题(1)错(2)对(3)对(4)错3.读程序写结果(1)C++的控制语句5)A 5)错((课后习题答案以及代码12 23 3 34 4 4 45 5 5 5 5(2)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 1(3)j的值为0;i的值为2;4.编程题(略)第4章1.填空题函数(1)void(2)静态全局变量,static(3)函数重载(4)inline(5)递归函数(6)宏定义命令,文件包含命令,条件编译命令2.判断题(1)错(2)错(3)错(4)错(5)错(6)对(7)错(8)错(9)对(10)对3.读程序写结果(1)x=7,y=4x=9,y=5(2)34.56101(3)162228(4)12 15 18 21 24课后习题答案以及代码(5)2,1,4,1,3,2,1,4.简答题5.编程题(略)(略)第5章1.选择题构造数据类型(1)C (2)D (3)A (4)B (5)C 2.判断题(1)错(2)对(3)对(4)错(5)错3.读程序写结果(1)153(2)422 5 6 8 10(3)__,21(4)419(5)6904(6)43214.编程题(略)第6章1.填空题(1)类,对象,类(2)数据成员,成员函数(3)不能(4)private,protected,public,private (5)成员函数类和对象课后习题答案以及代码(6)friend(7)类名,作用域运算符(8)对象名.成员名,指针变量名-成员名,(*指针变量名).成员名(9)构造,析构,构造,析构(10)常量数据,引用数据(11)全局,数据类型,所属的类(12)常成员,只读(13)成员,友元(14)类数据成员,类成员函数(15)this(16)浅拷贝2.选择题(1)C (2)C (3)B (4)C (5)B(6)C (7)D (8)B (9)C (10)D(11)A (12)C (13)D (14)D (15)B3.改错题(1)man1.salary=1000.00; 不能在类外访问类的私有成员(2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值}后缺少分号“;”(3)成员函数void setdata(float x1,float y1,float r);没有实现(4)构造函数名point()应与类名同名,为Point没有头文件包含#include iostream.h4.读程序写结果题(1)x=0,y=0x=100,y=200(2)x=100,y=200x=1000,y=2022年t=3.14(3)Sta::fun2()=10s.fun2()=11r.a=20(4)Constructor1 called!x=0Constructor2 called!x=100Destructor called!Destructor called!(5)课后习题答案以及代码575.简答题6.编程题(略)(略)第7章1.填空题(1)继承(2)基类,派生类(3)private,protected,public,private (4)不可访问,保护,公有(5)私有(6)单(一),多(重)(7)赋值兼容规则(8)静态,动态(9)抽象类2.选择题继承和派生(1)B (2)A (3)B (4)C (5)B (6)A (7)D (8)B (9)B (10)B(11)D (12)B3.改错题(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2022年;和y.b3=3000;语句。
C++面向对象程序设计_实验指导书

1.完成实验指导书《C++面向对象程序设计教程(第3版)——习题解答与上机指导》的实验1;
2.做好实验记录;
3.按照实验报告格式(附件1)要求填写实验内容,并提交实验报告。
九、其它说明
每次实验前,实验指导书都会预先发放,请提前预习实验,特别是实验涉及的原理。实验要求及时完成并上交实验报告,鼓励提前完成必做实验,并尽量多做实验题目。
【要求】:采用C++编程风格。
【运行结果截图】:
三、实验原理、方法和手段
1.重载函数:a)函数名称相同;b)函数的形参个数不同;函数的形参类型不同;或两者兼有;c)函数的返回值不构成判别标准。
2.了解“传址调用”与“传值调用”的区别;
3.“引用”不额外申请内存。
四、实验组织运行要求
本实验采用“以集中授课,学生自主训练为主的开放模式组织教学”。
putchar(c3);
}
【运行结果是】:
【分析运行结果】:
6.输入并运行下面的程序,分析格式控制对输出的影响。
#include<stdio.h>
void main()
{
int a=-1,b=98;
double x=152.6752445;
printf("a=%d,%ld,%u,%o,%x\n",a,a,a,a,a);
i=8;
j=10;
printf("%d,%d \n", i,j);
printf("%d,%d \n",i++,j--);
printf("%d,%d \n", i,j);
printf("%d,%d \n", ++ i,-- j);
C语言程序设计-第1-7章选择、填空习题及答案

习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
面向对象程序设计C课后题答案

第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再由类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章 流库 • 8.2 C++流库的结构
8.2.1输入输出流的含义 输入是数据从输入设备(如键盘,磁盘,鼠标等) 到内存的过程,输出是内存的数据输出到输出设 备(如显示屏幕,打印机,磁盘等)的过程。输 入输出过程中,数据像流水一样从一处流到另外 一处,C++形象的描述该过程为流。流的内容可 以是ASCII码字符、二进制形式的数据、图形图像 、数字音频视频或者其他形式的信息。 在C++中,输入输出流被定义为类。C++的I/O库中 的类称为流类,用流类定义的对象称为流对象。 比如cin是输入流对象,cout是输出流对象。
设置域宽为n
9
I/O
第八章 流库 • 8.5 文件I/O
8.5.1 文件的概念 文件指存储在外部介质上的数据集合。操作系统以 文件为单位管理数据。如果想找外部介质的数据 ,先通过文件名找到指定文件,再从文件读数据 。如果想将数据存储在外部介质中,也是先建立 一个文件,然后才能输出数据。 根据文件中的数据的组织形式,可以分为ASCII码文 件和二进制文件。
6
第八章 流库 • 8.4 格式控制
8.4.1 用ios类成员函数格式化
状态标志 kipws 含义 跳过输入中的空白 输入/输出 Input
left
right internal dec oct hex showbase showpoint uppercase showpos scientific fixed unitbuf stdio
3
第八章 流库 • 8.2 C++流库的结构
8.2.2 C++流库的结构
ios
istream istrstream ifstream iostream ostream ostrstream ofstream
istream_withassign fstream strstream
ostream_withassign stdiostream
10
第八章 流库 • 8.5 文件I/O
8.5.1 文件的概念 写入到文件和从文件读出的过程可分解为三个抽象 的概念:往流中加入一个字符; 从流中取出一个字 符; 一旦建立一个流,把它与文件相关连以便用 来读和写。 因此,在 C++ 中,要进行文件I/O,首先必须创建 一个流,然后将这个流与文件相关联(称为打开 文件),这时才能进行读和写操作,使用完后, 需关闭文件。
置转换基格式为基 n(0,8,10 或 16) 0表示使用缺省基数 resetioflags(long 清除由参数指定的 ins 或 outs 的格式位 f) setioflags(long 设置由参数指定的 ins 或 outs 的格式位 f) setfill(int c) 设置填充字符为 c setprecision(int n) setw(int n) 设置浮点精度为 n 位数字
Output
Output Output Input/Output Input/Output Input/Output Input/Output Output Output Output Output Output Output Output
7
第八章 流库 • 8.4 格式控制
8.4.2 用操纵函数格式化 改变格式变量比较简单的方法是使用特殊的,但类 似于函数的运算符,C++称之为操纵符。操纵符 以一个流引用作为其参数,并返回同一流的引用 ,因此,它可嵌入到输入或输出操作的链中。例 如,操纵函数 setw(int w) 是将域宽设置为w。
streambuf
fstream strstream stdiostream
iostream_init
4
第八章 流库 • 8.3 输入和输出
istream 流类将运算符“>>”重载为输入运算符,它相 对 于 系 统 预 定 义 类 型 ( 如 int , char , float , double 等 类 型 ) 重 载 。 ostream 流 类 将 运 算 符 “<<”重载为输出运算符,它也对系统预定义类型 重载。对于预定义类型,用户可以方便地使用运 算符“>>”和“<<”进行输入和输出。对于类类型, 用户可以重载运算符“>>”和“<<”以满足自己的需 要。
13
第八章 流库 • 8.5 文件I/O
文件的打开方式如下:
方式 Ios::app ios::ate ios::in ios::out ios::binary ios::trunc 动作 追加数据 (总是写到文件尾)
在原打开文件上找到文件尾 打开输入(对 ifstream 适用) 打开输出(对 ofstream 适用) 以二进制方式打开文件,缺省时为文本方式 若文件存在则清除原内容(若指定 ios::out,但 未指定ios::ate 或 ios::app,则这种方式为 隐含的) 若文件不存在,则打开失败
ios::nocreate
ios::noreplace 若文件存在,除非设置 ate 或 app,否则打开输 出失败
14
第八章 流库 • 8.5 文件I/O
8.5.3 文件的读写 文件读操作是从流中取一个元素,文件写操作是向 流中写一个元素。ofstream类从ostream中继承了 输出操作,而 ifstream 类从 istream 中继承了输 入操作。当一个输入文件流、输出文件流或输入 /输出文件流建立后,对文件的读写就像控制台 读写一样的方便。(例8-11)
5
第八章 流库 • 8.4 格式控制
在很多情况下,对计算机的输入输出格式进行控制 是非常有用的,C++ 提供了比较灵活的方式控制 输入输出的格式。 在 C++ 中,可以用 C 中的 printf 和 scanf 语句进行 格式化I/O,这是 C 程序员比较熟悉的方法。除此 以外,C++ 还提供了两种进行格式控制的方法, 一种是使用ios类有关格式控制的成员函数,另外 一种是使用称为操纵符(manipulator)的特殊类 型的函数,下面介绍这两种格式控制的方法。
8
第八章 流库 • 8.4 格式控制
8.4.2 用操纵函数格式化 下表示C++与定义的操纵符:
操纵符 dec hex oct ws endl ends flush setbase(int n) 含义 设置十进制转换基格式标志 设置十六进制转换基格式标志 设置八进制转换基格式标志 提取空白字符 插入换行并刷新流 在串后插入终止空字符 刷新流 输入/输出 I/O I/O I/O I O O O O I/O I/O I/O I/O
12
第八章 流库 • 8.5 文件I/O
下面介绍open函数的函数原型。 void open(const char * ,int filemode,int = filebuf::openprot) 第一个参数表示相关联的文件名,第二个参数表示 文件的打开方式,第三个参数是文件的保护方式 ,与操作系统有关,用户一般只使用缺省值。
11
第八章 流库 • 8.5 文件I/O
8.5.2 文件的打开和关闭 C++有三种类型的文件流:输入文件流、输出文件 流和输入/输出文件流。 • 要打开一个输入文件流,必须说明类型为ifstream 的对象; • 要打开一个输出文件流,必须说明一个类型为 ofstream的对象; • 要建立输入和输出的流必须说明一个类型为 fstream的对象。
左对齐输出
右对齐输出 在符号位和基指示符后填入字符 转换基制为十进制 转换基制为八进制 转换基制为十六进制 在输出中显示基指示符 输出时显示小数点 十六进制输出时,表示制式的和表示数值的字符一律为大写 对正整数显示 科学表示法显示浮点数 定点形式显示浮点数 在输出操作后立即刷新所有流 在输出操作后刷新 stdout 和stderr
15
面向对象程序设计语言C++
电子科技大学示范性软件学院
1
第八章 流库 • 8.1 C++的I/O系统
C++为了与C兼容,仍然保留了printf和scanf进行输 入输出的方法。在C++的输入输出中,编译系统 对数据类型进行严格的检查,凡是类型不正确的 数据都不可能通过编译,因此C++的I/O操作是类 型安全的。 但printf和scanf有一个重大的缺陷:就是它们不能处 理用户自定义类型。所以,C++引入了自己的输 入输出方式:流。C++采用继承的方法建立了比 较实用的流库,流库不仅提供了与C的I/O系统相 似的功能,而且功能更强灵活性更大,能方便进 行扩充。