清华C++语言程序设计:第03章输入和输出.ppt_第1页
清华C++语言程序设计:第03章输入和输出.ppt_第2页
清华C++语言程序设计:第03章输入和输出.ppt_第3页
清华C++语言程序设计:第03章输入和输出.ppt_第4页
清华C++语言程序设计:第03章输入和输出.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 输入和输出,2,讲授内容,标准输入输出函数 格式化输入输出函数 通过流进行输入输出,3,3.1 C+的输入和输出,两种I/O方式 保留自C的通过标准的I/O函数实现 面向对象的类型安全的,编译器对输入输出操作做严格的类型检查 建议尽量使用面向对象的I/O方式,4,3.2 标准输入与输出函数,字符输入函数getchar int getchar(void); 字符输出函数putchar int putchar(int c );,5,例子1:字符输入输出,/ ex3_1.cpp # include int main() char a=a, b=b, c; c = getchar(); putchar(a); putchar(b); putchar(c); putchar(c); putchar(“); putchar(0101); putchar(n); return 0; ,6,程序运行如果,s abcs“A,7,3.3 格式化输入输出(1/12),格式化输入函数scanf 输入各种类型的数据,并存入相应的参数中 读取输入流中的指定的字符 跳过输入流中的指定的字符,8,3.3 格式化输入输出(2/12),格式化输入函数scanf scanf( , ) 描述输入数据遵循的格式,可以包含3种类型的字符:格式指示符、空白字符(空格、Tab键和回车键)和非空白字符(普通字符) 是存放数据的地址的列表,参数之间用“,”分隔。参数列表是一个地址列表 scanf(“%d %f %d“, 12 34.5 678,9,3.3 格式化输入输出(3/12),scanf函数的格式指示符 % * %是格式指示符的前导符 * 赋值抑制符,表示该格式指示符对应的数据读入后,不赋给相应的变量 scanf(“%d %*d %d %d“, 输入 12 34 567 89,10,3.3 格式化输入输出(4/12),scanf函数的格式指示符 % * 宽度是任选项,为一整数n,指明了该输入数据长度为n,如果有多余的部分将被舍弃 scanf(“%3c%3c“, ch1和ch2均为字符型变量,输入为:abcdefg,11,3.3 格式化输入输出(5/12),scanf函数的格式指示符 % * 转换说明符,12,3.3 格式化输入输出(6/12),格式化输出函数printf 指定浮点值保留的小数位数 浮点值小数点对齐 输出数据的右对齐和左对齐 将直接字符插入到输出数据中 将浮点数按照指数形式输出 将整数按照八进制或十六进制形式输出 按指定的域宽和精度输出数据,13,3.3 格式化输入输出(7/12),格式化输出函数printf printf (, ); 描述了输出数据的格式。可以包含3种类型的字符 格式指示符, 则被参数列表中相应的数据替换 转义字符,按其含义输出相应的特殊符号 普通字符,按照原样输出,14,3.3 格式化输入输出(8/12),格式化输出函数printf printf (, ); 存放输出数据的表达式列表。 格式指示符的数量、顺序与输出参数相对应。 printf函数执行时,从左到右依次处理格式控制串,遇到格式控制字符,先计算相应的输出参数表达式,然后将该参数的计算结果按照格式指示符指定的方式输出,15,3.3 格式化输入输出(9/12),格式化输出函数printf printf (, ); 中的格式指示符 % 其中、 和可选,16,3.3 格式化输入输出(10/12),格式化输出函数printf 中的格式指示符 % 共五种不同的标志,17,3.3 格式化输入输出(11/12),格式化输出函数printf 中的格式指示符 % 域宽,指明了数据打印的宽度。如果数据实际长度小于域宽,则数据输出右对齐;如果数据实际长度大于域宽,系统自动突破域宽限制,按数据的实际长度输出,18,3.3 格式化输入输出(12/12),中的格式指示符 精度:对于整数,表示至少要打印的数字个数,如果数据长度小于精度,则左边补齐0;如果数据实际长度大于精度,则按数据实际长度输出。 对于浮点数,如果转换说明符为e、E和f,精度表示小数点后的有效位数,如果数据小数部分的长度小于精度,则在右边补齐0;否则按精度对数据进行舍入输出。 如果浮点数的转换说明符为g和G,精度表示打印数据的最大的长度。 对于字符串,精度表示字符串输出的最大长度,如果输出字符串长度小于精度,则按照字符串的实际长度输出;否则按精度截取输出字符串开头的n个字符(假设精度为n)输出,19,例子2:格式化输入输出例子(1/2),/ ex3_2.cpp: 基本格式化输入和输出 # include int main() int num1; float num2; char ch2; int na, nb, nc, nd, ne, nf, ng; double da, db, dc; printf(“-Basic input and output:-n“); printf(“Input a char, a int and a float:“); scanf(“%c %d %f“, ,20,例子2:格式化输入输出例子(2/2),printf( “Please enter seven integers: “ ); scanf( “%d%i%i%i%o%u%x“, ,21,3.4 用流进行输入输出(1/3),通过I/O流对象实现输入输出功能 将实现数据传送操作的设备抽象成对象 将“流”作为设备(如键盘、显示器等)和程序之间通讯的通道 C+预定义的四个输入输出对象 cout,标准输出设备,即显示器 cin,标准输入设备,即键盘 cerr和clog代表标准错误流对象,22,3.4 用流进行输入输出(2/3),通过cout流输出数据 cout ; cout . ; cout“Welcome to C+ !n“ ; cout“123 + 456 = “ (123 + 456) endl ;,23,3.4 用流进行输入输出(3/3),通过cin流输入数据 cin cin . . . ;,24,例子3:流输入输出例子,/ex3_5.cpp #include int main() char c ; int i ; float x , y ; cout i x y ; c=i; cout “c=“ c “ti=“ i; cout “tx=“ x “ty=“ y “n“ ; return 0; ,25,3.5 流操纵算子(1/4),流操纵算子为流输入输出提供格式化输入输出的功能 常用的流操纵算子,26,3.5 流操纵算子(2/4),设置整数基数 将整数按十进制、八进制和十六进制等形式输出 流操纵算子oct将整数输出形式设置为八进制 流操纵算子hex将整数输出形式设置为十六进制 流操纵算子dec将整数输出形式设置为十进制,27,例子4:使用设置整数基数的流操纵算子,#include #include int main() int n; cout n; cout n “ in hexadecimal is: “ hex n endl dec n “ in octal is: “ oct n endl; return 0; ,28,3.5 流操纵算子(3/4),设置浮点数精度 流操纵算子setprecision和函数precision都可控制浮点数小数点后面的位数,29,例子5:使用设置浮点数精度的流操纵算子,/ex3_7.cpp: 设置浮点数精度的流操纵算子的使用 #include #include #include int main() double log2 = log( 2.0 ); int places; cout “log(2) with precisions 0-9.n“ “Precision set by the “ “precision member function:“ endl; for ( places = 0; places = 9; places+ ) cout.precision( places ); cout log2 n; ,30,例子5:使用设置浮点数精度的流操纵算子,cout “nPrecision set by the “ “setprecision manipulator:n“; / 使用setprecision算子 for ( places = 0; places = 9; places+ ) coutsetprecision(places)log2n; return 0; ,31,3.5 流操纵算子(4/4),设置域宽 函数width可以设置当前域宽(输入输出的字符数) 如果输出的数据所需的宽度比设置的域宽小,空位用填充字符(省缺为空格)填充 如果输出的数据所需的宽度比设置的域宽大,系统输出所有位 流操纵算子setw也可以设置域宽,32,例子6:使用设置域宽的流操纵算子,/ex3_8.cpp: 设置域宽的流操纵算子的使用 #include

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论