C++程序设计(第二版)第9章流类库与输入输出
C语言程序设计教程(第2版)课件第9章

⑵指针与指针的加运算毫无意义,所以指针与指针 没有加运算。 ⑶指针与指针的减运算要求相减的两个指针属于同 一类型,其结果是整数,表示两个指针之间的数 据的个数。其结果值的计算公式是:
ptr1-ptr2=(ptr1的值- ptr2的值) /指针的数据类型所占的字节数 例如:
int *ptr1,*ptr2,*ptr3,x; int ary[5]={2,4,8,16,32}; ptr1 = &ary[0] ; ptr2 = &ary[3]; ptr3 = ary; x=ptr2-ptr1;
9.3 指针与数组
9.3.1 一维数组的指针
数组的指针 :是数组的起始地址。
数组元素的指针 :是数组元素的地址。 当指针变量指向数组或数组元素时,它就是指 向数组的指针变量。
C规定: ⑴数组名代表数组的首地址(起始地址),
也就是第一个元素的地址。
⑵当指针变量p指向数组时,p+1指向数组 的下一个元素。假设一个整型元素占两 个字节,p+1是使p的地址加2个字节。 如:int a[10],*p ; p+i、a+i 、&a[i] 则:p=a ; 与 p=&a[0];等价 都是a[i]的地址。 称指针变量p指向数组元素a[0]
第9章 指 针
本章要点
指针的定义、引用和运算方法
数组、函数和字符串与指针的关系
本章难点
指针变量的引用
指针作为函数参数的运用
预备知识
1. 内存的概念 内存:就是内部存储器,是由存储单元组成 的。它的特点是存储单元是线性连续
的。存储单元的最小单位是字节。
2. 地址的概念
地址:为了访问内存中的某个存储单元,我们 要为它编号,这种编号称为内存地址。 通过地址我们就能够访问该地址所标 识的存储单元。
C++程序设计语言第九章 流类库与输入输出

输出流
插入运算符(<<)
• 插入(<<)运算符是所有标准C++数据类 型预先设计的。 • 用于传送字节到一个输出流对象。 • 插入运算符举例
输出流
控制输出格式
• 控制输出宽度
–为了调整输出,可以通过在流中放入setw操纵符或 调用width成员函数为每个项指定输出宽度。
• 例11-1 使用width控制输出宽度
输出流
例11-3设置对齐方式
#include <iostream.h> #include <iomanip.h> void main() { double values[]={1.23,35.36,653.7,4358.24}; char *names[]={"Zoot","Jimmy","Al","Stan"}; for(int i=0;i<4;i++) cout<<setiosflags(ios::left) <<setw(6)<<names[i] 输出结果: 输出结果: <<resetiosflags(ios::left) Zoot 1.23 Jimmy 35.36 <<setw(10)<<values[i] Al 653.7 <<endl; Stan 4358.24 }
输出流
二进制输出文件
• 以通常方式构造一个流,然后使用 setmode成员函数,在文件打开后改变 模式。 • 使用ofstream构造函数中的模式参量指 定二进制输出模式。 • 使用二进制操作符代替setmode成员函 数:ofs << binary;
C程序设计(第二版)第九章流类库与输入输出

【例9.1】整型数输出。
basic_ ios
指针 basic_ streambuf
basic_ istream basic_ ostream
basic_ ifstream
basic_ iostream basic_ ofstream
basic_ fstream
图9.1 主要输入/输整出理p流pt 模板层次
3
9.1 C++的基本流类体系
right=0x0004,
//输出右对齐
internal=0x0008, //在输出符号或数制字符后填充
dec=0x0010, //在输入输出时将数据按十进制处理
oct=0x0020, //在输入输出时将数据按八进制处理
hex=0x0040, //在输入输出时将数据按十六进制处理
整理ppt
7
9.2 输入输出的格式控制(选读)
“插入”的含义是指输出操作,可看作向流中插入一个字 符序列。
cin使用提取运算符。 cout、cerr和clog使用插入运算符。
文件:
文件处理完成永久保存的功能。 在Windows下不同的C++平台,都为文件功能作了扩充, 在VC++的MFC编程中采用了序列化(Serialization)。
整理ppt
6
9.2 输入输出的格式控制(选读)
格式控制符:
C++在类ios_base中提供格式化输入输出。这些格式 是对所有文本方式的输入输出流均适用。格式控制符 定义为公有的无名枚举类型,在VC++6.0中定义为:
enum{
skipws=0x0001,
C++:流类库与输入输出

C++:流类库与输⼊输出7.2.1 C++的输⼊输出流ios:流基类(抽象类)istream:通⽤输⼊流类和其他输⼊流的基类ostream:通⽤输出流类和其他输出类的基类iostream:通⽤输⼊输出流类和其他输⼊输出流类的基类(以下的派⽣类对象有cin、cout、cerr、clog)ifstream:输⼊⽂件流类ofstream:输出⽂件流类fstream:输⼊输出⽂件流istrstream:输⼊字符串流类ostrstream:输出字符串流类strstream:输⼊输出字符串类iostream_withassign: 通⽤输⼊输出流类和其他输⼊输出流类iostream的的派⽣类7.2.2 预定义的流对象C++中包含⼏个预定义的流对象,它们是标准输⼊流对象cin、标准输出流对象cout、⾮缓冲型的标准出错流对象ceer、缓冲型的标准出错流对象clogcin是istream的派⽣类istream_withassign的对象,它与标准输⼊设备(通常是键盘)相联系。
cout是ostream的派⽣类ostream_withassign的对象,它与标准输出设备(通常是显⽰器)相联系。
ceer是ostream的派⽣类ostream_withassign的对象,它与标准错误输⼊设备(通常是显⽰器)相联系。
clog是ostream的派⽣类ostream_withassign的对象,它与标准错误输⼊设备(通常是显⽰器)相联系。
由于istream和ostream类都在头⽂件iostream中声明的,因此只要在程序中包含头⽂件iostream.h,C++程序开始时这四个标准流对象的构造函数都被⾃动调⽤。
7.2.3 输⼊输出流的成员函数(1)put函数put函数⽤于输出⼀个字符格式:cout.put(char ch)例如:cout.put('A')===cout.put(65)===cout.put(25+40)(2)get函数get函数的功能与提取运算符>>类似,主要不同之处是get函数在读⼊数据时可以包括空⽩字符,⽽后者不可以。
c++流类库与输入输出习题答案

1.概念填空题1.1头文件iostream中定义了4个标准流对象cin,cout,cerr,clog。
其中标准输入流对象为cin,与键盘连用,用于输入;cout为标准输出流对象,与显示器连用,用于输出。
1.2用标准输入流对象cin与提取操作符>>连用进行输入时,将空格与回车当作分隔符,使用get()成员函数进行输入时可以指定输入分隔符。
1.3每一个输入输出流对象都维护一个流格式状态字,用它表示流对象当前的格式状态并控制流的格式。
C++提供了使用格式控制函数与操作子函数来控制流的格式的方法。
1.4 C++根据文件内容的数据格式可分为两类:文本文件和二进制文件。
前者存取的最小信息单位为字节,后者记录。
1.5文件输入是指从文件向内存读入数据;文件输出则指从内存向文件输出数据。
文件的输入输出首先要打开文件;然后进行读写;最后关闭文件。
1.6文本文件是存储ASCII码字符的文件,文本文件的输入可用cin从输入文件流中提取字符实现。
文本文件的输出可用cout将字符插入到输出文件流来实现。
程序在处理文本文件时需要(需要/不需要)对数据进行转换。
1.7二进制文件是指直接将计算机内的数据不经转换直接保存在文件中。
二进制文件的输入输出分别采用read()、write() 成员函数。
这两个成员函数的参数都是2个,分别表示读写缓冲区和字节数。
1.8设定、返回文件读指针位置的函数分别为seekg,tellg;设定、返回文件写指针位置的函数分别为seekp,tellp。
2 简答题2.1 为什么cin输入时,空格和回车无法读入?这时可改用哪些流成员函数?2.2 文件的使用有它的固定格式,试做简单介绍。
2.3 在ios类中定义的文件打开方式中,公有枚举类型open_mode的各成员代表什么文件打开方式?2.4 简述文本文件和二进制文件在存储格式、读写方式等方面的不同,各自的优点和缺点。
2.5 文本文件可以按行也可以按字符进行复制,在使用中为保证能完整复制要注意哪些问题?2.6 文件的随机访问为什么总是用二进制文件,而不用文本文件?2.7 怎样使用istream和ostream的成员函数来实现随机访问文件?3.选择题3.1要进行文件的输出,除了包含头文件iostream外,还要包含头文件(C )。
C++语言程序设计第9章 流类库与输入输出

• 【例9.1】 cout 、cerr区别。
#include <iostream> #include<stdlib.h> using namespace std; int main() { cout<<"hello "<<endl; cerr<<"hello world"<<endl; system("pause"); }
• 将例9-1编译形成项目可执行文件9_1.exe,在命令提示符状态 分别输入两个命令: • “9_1 >t1.txt”和“9_1 2>t2.txt”,分别查看t1.txt和t2.txt可 以看出不同。
9.2.1 插入运算符(<<)和操纵符
• 插入(<<)运算符是所有标准C++数据类型预先设计的,用 于传送字节到一个输出流对象。 • 很多情况下,程序员需要控制输入输出格式。C++提供了 两种格式控制方法:一种方法是使用ios类中有关格式控 制的成员函数;另一种是使用预先定义的操纵符一起工作 。下面重点讲述操纵符。 • C++预定义的操纵符分为带参数的操纵符和不带参数的操 纵符。通常,不带参数的操纵符在iostream文件中,而带 参数的操纵符在iomanip文件中定义。在进行输入输出时 ,操纵符被嵌入到输入或输出链中,用来控制输入输出的 格式。程序中如果使用带参数的操纵符,还必须使用预编 译命令: • #include <iomanip>
• 程序运行时,在内存中为每一个数据流开 辟一个内存缓冲区,用来存放流中的数据 。例如当用cout和插入运算符“<<”向显 示器输出数据时,先将数据送入内存输出 缓冲区保存,直到缓冲区满了或遇到endl, 就将缓冲区中的全部数据送到显示器显示 ;当用cin和提取运算符“>>”从键盘输入 数据时,键盘输入的数据先放着键盘的缓 冲区中,当按回车键时,键盘缓冲区中的 数据送入内存输入缓冲区形成cin流,然后 提取运算符“>>”从输入缓冲区提取数据 送给程序中的变量。
第9章 C++流

【复习与提示】
1. C++为实现数据的输入和输出定义了一个庞大的类库,它包括的类主要有ios,istream, ostream,iostream,ifstream,ofstream,fstream,使用到相应的流时,应加载相应的包含文 件: #include<iostream>; using namesapce std; 2. 将运算符“<<”称为插入运算符,“>>”称为抽取符。 3. 计算机处理的所有数据项最终都是0和1的组合,字符是由位构成的,域(field)是由字符构成 的。一个域就是一组有意义的字符。记录是由多个域构成(在C++中称为成员)。 4. C++语言把每一个文件都看成一个有序的字节流,每一个文件或者以文件结束符(end-of-file marker)结束,或者在特定的字节号处结束。 5. 文件可以用open( )函数打开,用close( )函数关闭,可以用同一个对象来处理单个程序中不 同的文件。 6. 每个流有一系列位或标记与它的操作相关。这些位在ios类中定义。与打开文件有关的位称 为打开方式位(open mode bits)。 7. C++提供了随机读写文件的函数seekg( )、tellg( )、seekp( )、tellp( ): (1)get指针:它指出将出现下一个读操作的文件的位置。 (2)put指针:它指出将出现下一个写操作的文件的位置。
流的层次结构
ios
istream
ostream
iostream
ifstream
fstream
ofstream
C++为用户进行标准I/O操作定义 了四个类对象
标识符名字 cin cout cerr clog 调用设备 键盘 屏幕 屏幕 打印机 默认的含义 标准输入 标准输出 标准错误 打印机
第九章C流PPT课件

.
33
§9.4 文件的输入/输出
二、关闭文件
关闭文件操作主要是将缓冲区数据完整地 写入文件,添加文件结束标志,使文件流与对 应的物理文件断开联系。关闭文件时,调用 fstream的成员函数close()。
例:output.close();
.
34
#include "iostream.h"
#include "fstream.h"
例:fstream output; output.open("d:\\data\\test.dat",ios::out);
.
32
§9.4 文件的输入/输出
一、打开文件
打开文件有两种方式: (2)调用流类带参数的构造函数,建立流
对象的同时连接外部文件。 语句格式为:
流类 对象名(文件名,方式);
例:fstream output("d:\\data\\test.dat",ios::out);
3、使用成员函数getline( )获取一行字符
cin.getline(char *buf,int n,deline=‘\n’)
其中,buf用来存放一个字符串;n用来限定读 取的字符个数不能超过n-1个;第三个参数用来限 定一行字符的结束标志,默认为‘\n’。
结束该函数的条件:
①读取n-1个字符之后
②读取到换行符‘\n’之后
③读取到文件结束符或.其他结束符之后
9
比较:使用成员函数getline( )和get( )
.
10
§9.2 预定义类型的I/O
4、使用成员函数read( )获取指定个数的字符串 多用于从输入流中读取二进制的数据,如文件 流的操作。
C++程序设计(第2版)第九章习题解答

C++程序设计(第2版)第九章习题解答-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN第九章流类库和输入/输出习题一.本概念与基础知识测试题9.1填空题在C++中“流”是表示(1)。
从流中取得数据称为(2),用符号(3)表示;向流中添加数据称为(4),用符号(5)表示。
答案:(1)数据从一个对象到另一个对象的传送(2)提取操作(3)>>(4)插入操作(5)<<抽象类模板(1)是所有基本流类的基类,它有一个保护访问限制的指针指向类(2),其作用是管理一个流的(3)。
C++流类库定义的cin,cout,cerr和clog是(4)。
cin通过重载(5)执行输入,而cout,cerr和clog通过(6)执行输出。
答案:(1)basic_ios(2)basic_streambuf(3)缓冲区(4)全局流对象(5)>>(stream_extraction operator)(6)<<(stream_insertion operator)C++在类ios中定义了输入输出格式控制符,它是一个(1)。
该类型中的每一个量对应两个字节数据的一位,每一个位代表一种控制,如要取多种控制时可用(2)运算符来合成,放在一个(3)访问限制的(4)数中。
所以这些格式控制符必须通过类ios的(5)来访问。
答案:(1)公有的无名的枚举类型(2)或“|”(3)保护(4)一个长整型数(5)公共接口(函数)取代麻烦的流格式控制成员函数,可采用(1),其中有参数的,必须要求包含(2)头文件。
答案:(1)流操作子(2)iomanip通常标准设备输入指(1)。
标准设备输出指(2)。
答案:(1)键盘(2)显示屏EOF为(1)标志,在中定义EOF为(2),在int get()函数中读入表明输入流结束标志(3),函数返回(4)。
答案:(1)文件结束标志(2)-1(3)^Z(Ctrl-Z)(4)EOFC++根据文件内容的(1)可分为两类(2)和(3),前者存取的最小信息单位为(4),后者为(5)。
《C++程序设计》(第2版)教学资源 教师用书 教学大纲第二版

《C++程序设计》教学大纲课程名称:C++程序设计英文名称:F undamental course of C++ Programming面向专业:对计算机要求较高的理工科专业授课学时____48 __;习题课____8 __;实验学时___56(含课外24);课程学分:___ 4 _ __;一、课程的性质与目的程序设计课程是大学生的通识教育课程,包括面向对象程序设计及最基本的数据结构和软件工程的知识。
其任务是培养学生的面向对象的编程能力,也锻炼大学生的逻辑思维能力,为大学生将来结合其专业应用计算机编程打下一个扎实的基础。
本课程选用面向对象的C++语言作为教学语言。
本课程的先修课程是大学计算机基础。
C++课程设计是本课程的组成部分,在短学期进行,因单独成课大纲另立,软件工程的知识安排在课程设计中。
本大纲仅为基础教学部分的大纲。
二、教学内容与要求本课程教学分为两阶段进行,分别在两个学期实施,学时分配为授课24+24,习题课4+4,上机实验28+28学时。
总上机时间含课外上机24学时。
第一阶段:1.C++基础知识(1)初识C++程序;(2)了解类型潜在的面向对象的特性——值集与操作集的封装(3)掌握基本数据类型和运算:关键字与标识符,基本数据类型,数组,枚举类型,运算符、表达式和优先级;(4)理解类型的相容性与不相容性;(5)掌握简单标准输入输出的程序实现。
2.基本控制结构程序设计(1)理解算法的概念,掌握算法的描述方法,了解程序设计三种基本结构;(2)掌握双路和多路选择结构的程序设计:if 语句,switch语句;(3)掌握循环结构的程序设计: while语句,for语句,do…while语句;(4)掌握常用算法的应用:直接法,枚举法,递推法,迭代法;(5)应用结构化技术分解程序,设计、实现、测试和查错简单程序;(6)掌握文本文件的输入输出。
3.函数(1)理解函数抽象机制,掌握函数定义与函数的调用;(2)理解参数化机制(值调用),了解参数的传递过程;(3)理解函数的返回值及函数原型说明;(4)理解全局变量,局部变量,变量的存贮类型与作用域,生命期与可见性;(5)掌握函数的递归调用,编写、测试、调试简单的递归函数;(6)理解函数重载,缺省变元,内联函数。
流类库和输入输出(C程序设计(第2版)吴乃陵)

iofile.open(“myfile.txt”,ios::in|ios::out);
整理ppt
6
第九章 流类库和输入/输出
文件是存储在磁盘、磁带等外部设备上数据集合,每 一个文件都必须有一个唯一名字。使用文件前必须首先 打开文件,使用后必须关闭文件。对文件的操作时通过 文件流类完成的。文件流类在流与文件之间建立连接, 使用这些文件流类必须用#include 编译指令将fstream.h 包含进来。
int=filebuf::openprot); ofstream::ofstream(const char*,int=ios::out,
int=filebuf::openprot); fstream::fstream(const char*,int,
int=filebuf::operprot); 所以1,2两步可合成: fstream iofile(”myfile.txt”,ios::in|ios::out);
C++把每一个文件都看成一个有序的字节流,见图9.2, 每一个文件或者以文件结束符(end of file marker)结束, 或者在特定的字节号处结束。
0 1 2 3 4 5 6 7 8 … n-1
…
文件结束符
图9.2 C++把文件看作有序的n个字节的流
整理ppt
3
9.2 文件的输入与输出
当打开一个文件时,该文件就和某个流关联起来了。对文件进行读 写实际上受到一个文件定位指针(file position pointer)的控制。
同济c 程序设计 软件基础 答案 PPT 第九章

ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
第九章 C++的I/O流库 的 流库 9.1 流 9.2 磁盘文件 9.3 程序举例
输出 数据 内存 数据 输入 设备
cout是系统定义过的ostream类的一个对象 cout是系统定义过的ostream类的一个对象,该类提供的多 是系统定义过的ostream类的一个对象, 输出功能都适用于cout,包括: 输出功能都适用于cout,包括: cout,包括
限定最大字符个数 不能超过size size不能超过size-1 指定的结束符, 指定的结束符, 该字符不包含在 字符串中, 字符串中,默认 结束符为‘ 结束符为‘\n’
放字符串的字符 组或字符指针
ude "iostream.h" ude "string.h" main() 输入一行字符串, 输入一行字符串,最 ne,max=0; 大长度不能超过49 大长度不能超过49 s[50],t[50]; <<"input a string:"<<endl; e((cin.getline(s,50))) ne=cin.gcount(); //line中存放的是刚刚读入的那行字符串的长度 中存放的是刚刚读入的那行字符串的长度 f(line>max) 若改为cin.getline(s,50, ' ') max=line; 结果如何? 结果如何? strcpy(t,s); }
file.close(); eam infile("abc.txt",ios::in); //以读的方式打开文件 以读的方式打开文件abc.txt 以读的方式打开文件 到文件尾返回1 到文件尾返回
第九章输入输出流和文件操作-仲恺农业工程学院

public final void writeFloat(float v) throws IOException
ObjectOutputStream 对象输出流
PipedOutputStream 管道输出流
DataOutputStream 数据输出流
OutputStream 字节输出流
ByteArrayOutputStream 字节数组输出流
《Java2程序设计实用教程(第2版)》
9.2.3 Java的标准输入/输出
显示器
《Java2程序设计实用教程(第2版)》
9.2.4 文件字节输入/输出流类
1. FileInputSream类
public class FileInputStream extends InputStream
{ public FileInputStream(String name) throws FileNotFoundException public FileInputStream(File file) throws FileNotFoundException
DataInputStream 数据输入流
InputStream 字节输入流
PipedInputStream 管道输入流
SequenceInputStream 顺序输入流
ByteArrayInputStream 字节数组输入流
StringBufferInputStream 字符串缓冲输入流
《Java2程序设计实用教程(第2版)》
9.2.2 字节输出流 OutputStream类
1. OuputStream类
public abstract class OutputStream extends Object implements Closeable, Flushable
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.3.3-1 标准输入流成员函数
函数原型 istream& getline(char* buf,int nCount,char delim=’\n’)
9.2.2 标准流对象
四个流对象均是文 本流对象,主要工 作是完成程序中的 数据与外部设备的 传输及数据格式的 转换。
键盘 istream cin
显示器 ostream cout
程序
9.3 标准设备的输入/输出
9.3.1 输入流 9.3.2 输出流 9.3.3 标准输入/输出函数成员 9.3.4数据流的错误检测
9.1 流的概念
C++语言本身并不包含输入输出功能,但C++标准库提 供了一系列输入输出流类,通过流类完成数据的输入输出。
在C++中,将数据从一个对象到另一个对象的传输抽象为 “流”。从流中获取数据的操作称为提取操作,向流中添 加数据的操作称为插入操作,数据的输入与输出就是通过 I/O流来实现的。
9.3.1 输入流
istream 类提供了格式化和非格式的输入功能。常用的 输入方法是在标准输入流对象cin上使用提取运算符”>>”。 从与键盘相连的标准输入流cin中提取数据并赋值给相应的 对象,提取运算符返回cin流对象的引用,因此提取运算符 可以连用。
cin>>变量名1>>变量名2…>>变量名n; 数据的提取是从输入回车开始的,提取运算符忽略了流 中的空格、制表符、Enter键等空白字符。
9.3.1 输入流
当遇到流结束标志EOF(-1)或者提取了一个无效的值 试图复制给对象时,提取运算符返回NULL(false)给 cin,否则返回cin流对象的引用。因此提取运算符可以 连用。
当输入流提取了一个无效值给对象时,比如:输入 类型错时,除了返回出错信息false给cin外,还会设置 流的failbit状态位,结束提取操作。
9.2.2 标准流对象
C++的流类库中预定义了四个全局流对象: cin 标准输入流对象, istream类的实例,键盘为其 标准设备。通过流提取运算符>>,从键盘上输入数 据 cout 标准输出流对象, ostream类的实例,显示器 为其标准设备。通过流插入运算符<<,可以将数据 输出至显示器 cerr、clog 标准错误输出流,输出设备是显示器。
int gcount()
istream& ignore(int nCount=1,char delim=EOF)
int peek();
含义
最多提取nCount-1个字符给buf, 遇结束符delim或到达文件结束, 则停止提取。存入buf中的字符 串以0结尾,delim不存入buf。
9.2 C++的基本流类体系
9.2.1 流类库 9.2.2 标准流对象
9.2.1 流类库
C++的流类库是用继承方式建立起来的一个输入/输出 类库。由抽象类ios及其派生类构成ios类体系,共同完成 I/O操作。
9.2.1 流类库
ios类是抽象类,主要提供I/O所需的公共操作。 其派生的iostream、fstream、strstream类分别提 供标准设备、文件、字符串三类对象的I/O功能。这 些流类有着相似的接口,程序能够以较为一致的方 式使用这些流类,实现不同对象的I/O,从而使得整 个I/O流类库具有较好的一致性、可扩展性。
9.3.3-1 标准输入流成员函数
函m& get(char& ch)
istream& get(char* buf, int nCount,char delim=’\n’ )
含义
提取字符(包括空格),然后返回 该字符的值。若没有读到字符, 返 回 EOF , 并 设 置 流 对 象 的 failbit标志。 提取字符(包括空格)给ch,返回 istream对象的引用。
9.1 流的概念
在C++中,I/O可以分为三类:面向标准设备的I/O、 面向文件的I/O、面向字符串的I/O。
面向标准设备的I/O是指程序从键盘获取数据,向显 示器输出数据;
面向文件的I/O是指程序从文件中获取数据,把数据 保存到文件中;
面向字符串的I/O是指程序从字符串中获取数据,把 数据保存到字符串中。
第9章 流类库与输入/输出
输入/输出是程序必不可少的部分,C++程 序的输入/输出操作是由I/O流类库实现的。流 类库定义了一批流对象,连接常用的外部设备, 如键盘、显示器等。程序员也可以自定义I/O流 对象,与磁盘文件、字符串等对象连接。使用 流类库提供的函数,实现数据传输。
第9章 流类库与输入/输出
[例9-1]输入流对象cin的使用
9.3.2 输出流
ostream类提供了格式和非格式的输出功能。常用的输 出方法是在标准输出流对象cout上使用插入运算符”<<”。
cout<<变量名1|表达式1<<…<<变量名n|表达式n; 插入运算符返回cout流对象的引用,所以插入运算符 也可以连用。
[例9-2]输出流对象cout的使用。
学习内容: 1.了解C++流的概念、C++流类体系及常用流对象 2.掌握标准设备输入输出操作,两种格式控制方法以及状 态字的使用 3.理解文件的概念、文本文件和二进制文件的区别,掌握 两类文件的输入/输出。 4.理解字符串流的的概念,掌握字符串流的输入/输出。
第9章 流类库与输入/输出
9.1 流的概念 9.2 C++的基本流类体系 9.3 标准设备的输入/输出 9.4 流的格式控制 9.5 文件的输入/输出 9.6 字符串流的输入/输出 9.7 文件应用实例
9.1 流的概念
程序与外部进行信息交换时,流负责将程序中的对象和文 件对象建立联系,并管理数据的流动。程序中的对象操作 流对象,流对象连接文件对象。对程序而言,文件对象有 的特性,流对象也有,所以在程序中,就将流对象看作是 文件对象。
操作系统将键盘、屏幕、打印机和通信端口等设备作为扩 展文件处理的,因此,从C++程序的角度来看,这些设备 与磁盘文件并无区别,因此与这些设备的交互也是通C++ 的I/O流类来实现的。