C++语言程序设计 输入输出流.pptVIP

  • 6
  • 0
  • 约6千字
  • 约 28页
  • 2021-11-16 发布于上海
  • 举报
HZAU信息学院计算机应用系 姚娟 HZAU信息学院计算机应用系 姚娟 C++语言程序设计 输入输出流 * I/O流的概念 当程序与外界环境进行信息交换时,存在着两个对象,一个是程序中的对象,另一个是文件对象。 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。 程序建立一个流对象,并指定这个流对象与某个文件对象建立连接,程序操作流对象,流对象通过文件系统对所连接的文件对象产生作用。 读操作在流数据抽象中被称为(从流中)提取,写操作被称为(向流中)插入。 * C++的流 C++的流—— 表示一种数据传递操作。它是与某一I/O设备相联系的(例如键盘、显示器、磁盘等);通过使用流类中定义的方法,就可以实现利用这些设备完成输入输出操作. 与输入设备(如键盘)相联系的流称为 输入流,例如标准输入流cin ;与输出设备(如显示器)相联系的流称为 输出流,例如标准输出流cout ;与输入输出设备(如磁盘)相联系的流称为 输入输出流 * 流类地继承体系 ios ostream istream clog fstream iostream cerr cin ofstream ifstream cout iostream.h fstream.h * 预定义流 预先定义的输出流对象: cout 标准输出 cerr 标准错误输出,没有缓冲,发送给它的内容立即被输出。 clog 类似于cerr,但是有缓冲,缓冲区满时被输出。 预先定义的输入流对象: cin 标准输入 要使用这四个对象,必须包含iostream文件 * 输入/输出成员函数 int istream :: get ( ) ; 作用:函数值返回流中一个字符的ASCII码值 例: void main() { char ch; while( (ch = cin.get()) ! = EOF ) cout “ ch: “chendl; } 问题: get()的返回值不是iostream对象,不能连续输入 * istream istream :: get ( char c ) ; 作用:从流中提取一个字符,并存入实参变量 例: void main() { char ch1,ch2,ch3; cout“Input three letters:”; cin.get(ch1).get(ch2).get(ch3); } 可以连续输入 * istream istream :: get ( char * , int , char = ‘\n’ ) ; istream istream :: getline (char *, int , char = ‘\n’ ) ; 作用:从文本中提取指定个数的字符,并在串数组末添加一个空字符 第一个参数指向接受字符数据的字符数组 第二个参数指定字符数组最多可容纳的字符个数 第三个参数用于指定一个终止符,默认为换行符。 操作遇到终止符或提取到规定个数字符时,提取终止 注意: get (... ) 不从流中提取终止字符,终止字符仍在输入流中 getline (... ) 从流中提取终止字符,但终止字符被丢弃 两个提取操作成员函数都可以连续输入 * 例20-1 比较cin和cin.get的输入 #include iostream using namespace std; int main() { const int SIZE = 80; char ch1,ch2,ch3,buffer1[SIZE],buffer2[SIZE]; cout Enter a sentence:\n; cin buffer1; cout The string read with cin is:\n buffer1; ch1 = cin.get(); ch2 = cin.get(); cout \nThe result of cin.get() is:\n ch1 ch2; cin.get(ch3); cout \nThe result of cin.get(ch3) is:\n ch3; cin.get(buffer2,SIZE); cout \nThe string read with cin.get(buffer2,SIZE) is:\n buffer2 endl; return 0; } * ostream ostream :: put ( char c ) ; 作用:输出参数c的字符 例: void main() { char ch = ‘A’; coutch

文档评论(0)

1亿VIP精品文档

相关文档