
第19章1/0流
第19章 I/O流

目录19.1标准库的概念19.21/0标准流类19.3文件流类19.4C字串流类19.5控制符19.6使用1/0成员函数19.7重载插入运算符19.8文件操作
19.1 标准库的概念 19.2 I/O标准流类 19.3 文件流类 19.4 C字串流类 19.5 控制符 19.6 使用I/O成员函数 19.7 重载插入运算符 19.8 文件操作

第19章1/0流C++的I/O流类,是最常用的I/O系统1/O流不是C++语言的一部分,而是标准C++库的一部分,是C++类的一个集合。,本章主要掌握I/O流的使用
• C++的I/O流类,是最常用的I/O系统。 • I/O流不是C++语言的一部分,而是标准C++库 的一部分,是C++类的一个集合。 • 本章主要掌握I/O流的使用

19.1标准库的概念,用C++语言编写的类和函数库,由编译器厂商提供,与平台、厂商和编译器版本无关所以,使用C++标准库编写的程序,能够在各种操作平台下,使用支持标准C++的编译器进行编译、运行
• 用C++语言编写的类和函数库,由编译器厂 商提供,与平台、厂商和编译器版本无关。 • 所以,使用C++标准库编写的程序,能够在 各种操作平台下,使用支持标准C++的编译 器进行编译、运行

19.1标准库的概念一、标准函数库·是从C语言中继承下来的。常用的函数有:输入/输出函数。字符与字符串处理函数,数学函数,时间日期函数,动态分配函数以及其他一些实用函数
一、标准函数库 • 是从C语言中继承下来的。 • 常用的函数有: ✓ 输入/输出函数, ✓ 字符与字符串处理函数, ✓ 数学函数, ✓ 时间日期函数, ✓ 动态分配函数, ✓ 以及其他一些实用函数

19.1标准库的概念,printf和scanf是c语言的标准输入/输出函数,包含在头文件stdio.h中。printf函数的一般格式:printf(格式控制字符串,输出项1,输出项2,..)printf()函数的功能是将后面的参数按给定的格式输出。·格式说明由%和格式字符组成。例如%d、%f
• printf和scanf是C语言的标准输入/输出函数, 包含在头文件stdio.h中。 • printf函数的一般格式: printf(格式控制字符串, 输出项1, 输出项2, .) • printf( )函数的功能是将后面的参数按给定的 格式输出。 • 格式说明由%和格式字符组成。例如%d、%f

19.1标准库的概念scanf函数的一般格式:scanf(格式控制字符串,输出项1,输出项2,...)格式控制字符串的含义与printf的相同。但是,使用printf()和scanf()时,编译系统不能进行类型检查printf()和scanf()所期望的参数个数与类型取决于格式控制字符串中所包含的信息
• scanf函数的一般格式: scanf(格式控制字符串, 输出项1, 输出项2, .) • 格式控制字符串的含义与printf的相同。 • 但是,使用printf( )和scanf( )时,编译系统不 能进行类型检查。 • printf( )和scanf( )所期望的参数个数与类型取 决于格式控制字符串中所包含的信息

19.1标准库的概念·但是编译器无法检查对printf()和scanf()的调用的正确性例19-1:企图输入和输出异于格式符的数据#includeint j= 10 ;float f = 2.3 ;void fn()(printf("%d)n", f );//将double型的f按int型输出scanf("%d",&f);//输入数据按int型放入f中//输入值放到地址0x000A空间中scanf("%d ",j);printf("%d\n","abcde");//输出"abcde"的地址值1J
• 但是编译器无法检查对printf( )和scanf( )的调 用的正确性。 例19-1:企图输入和输出异于格式符的数据 #include int j = 10 ; float f = 2.3 ; void fn( ) { printf( " %d\n", f ) ; //将double型的f按int型输出 scanf( " %d ", & f ) ; //输入数据按int型放入f中 scanf( " %d ", j ) ; //输入值放到地址0x000A空间中 printf( " %d\n", " abcde " ) ; //输出" abcde "的地址值 }

19.1标准库的概念,例19-1的语句中,用错了数据类型,但是编译都能通过,这样,需要程序员花费精力调试程序运行中出现的这些错误,,特别是scanf()中的错误,往往是致命的
• 例19-1的语句中,用错了数据类型,但是编 译都能通过。 • 这样,需要程序员花费精力调试程序运行中 出现的这些错误。 • 特别是scanf( )中的错误,往往是致命的

19.1标准库的概念printf()和scanf()知道如何输入输出已知的基本数据类型值但是,C++程序中大量的类对象,其输入输出格式是未预先定义的。这就希望输入输出语句能够更加灵活与可扩充。printf()和scanf()既不能识别,也不能学会如何识别用户定义的对象
• printf( )和scanf( )知道如何输入输出已知的基 本数据类型值。 • 但是,C++程序中大量的类对象,其输入输 出格式是未预先定义的。 • 这就希望输入输出语句能够更加灵活与可扩 充。 • printf( )和scanf( )既不能识别,也不能学会如 何识别用户定义的对象