




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四讲输入输出和库函数 引例字符串常量符号常量格式化输入输出字符输入输出库函数 2 30 引例 输入输出和库函数 计算任意一个球体的体积 volume 4 3 r3 cw03 01 c include include definePI3 14159 定义符号常量一般用大写 也可以用小写 defineXIN 定义符号常量为一串字符intmain 定义主函数 doubler volume 定义r和volume为双精度变量 为什么 system color1a 颜色函数printf Pleaseinputtheradiusofaball 提示信息scanf lf 问题 计算任意一个球体的体积 volume 4 3 r3源程序 cw03 01 c 3 30 符号常量 符号常量符号常量是用一个标识符表示的常量 定义规则 define举例 输入输出和库函数 defineMAXSIZE20 defineWELCOME Welcometoyou defineBX definePI3 1415926 definePprintf 编译预处理器将会用3 1415926替换以后出现的PI标识符 undefPI 是用来撤销宏定义的 定义符号常量的目的是便宜维护 如果需要在多个地方用到同一个常量 而且必须改变它的值 则只需要修改其符号常量的定义 就可以了 4 30 用const定义变量为只读变量 在定义宏常数的时候用const 编译器给const修饰的只读变量做类型校验 减少错误的可能 但要注意const修饰的不是常量而是readonly的变量 const修饰的只读变量不能用来作为定义数组的维数 也不能放在switch关键字后面 定义时初始化 另一种定义近似符号常量 只读变量 的方法使用const把一个变量声明转换成只读变量 constfloatpi 3 1425926 常量只能在定义时赋值 然后不能再改变其值常数 const常量 宏常量和枚举常量 都可以用来表示一个永远不会改变的数如重力加速度G 980 PI 3 14因为有可能在不同的地方重力加速度可能不一样 PI的精度可能不一样 可以在程序中稍加修改即可使用 注意 const修饰定义的变量为常量 有值和类型 宏没有 5 30 字符串常量 字符串常量用双引号括起来的字符序列 thisisastring x 12345 字符串常量的存储方式字符串中的字符存放在相邻的存储单元中 每个字符占用一个单元 在最后加上一个空字符 0 作为结束标识符 所以字符串常量的占内存长度比其所占字节多1个字节 举例 输入输出和库函数 多少字符 16占多大内存 17 6 30 字符串常量 字符串常量和字符常量的区别字符 x 是基本型数据 字符串 x 是构造型数据 占用的存储空间大小不同 输入输出和库函数 0表示数字 0 表示0字符 常用在将数字转换为字符 0 表示具有0值的字符 NUL空字符 0 表示字符串 0 和 0 的字符 用两个字节存储 注意区别 Charc C 5 0 注意 有字符常量 有字符变量但有字符串常量 而无字符串变量 7 30 字符串 String 常量 用双引号括住的由0个或多个字符组成的字符序列 Iamastring 表示空字符串转义字符也可以在字符串中使用引号只作为字符串开始和结束的标志C语言内部用 0 表示字符串的结束除注释外 是唯一可以出现中文的地方 x 和 x 是不同的里定义了一系列专门的字符串处理函数 8 30 字符串是用双引号括起来的字符序列 1 字符用单引号括起来 而字符串用双引号括起来 两者不能混淆 2 不能将字符串赋给一个字符变量 3 单引号括起来的只有一个字符 而双引号括起来的有多个字符 不管显示出来有多少个字符 字符串都有一个看不见的字符 0 C语言规定 以字符 0 作为字符串结束的标志 在写字符串时不必加 0 0 字符是系统自动加上的 字符 a 字符串 a 中有两个字符 a 和 0 其中 0 是ASCII码值为0的字符 是空字符 比如字符串 CHINA 个字符 占 个字节内存 字符串 String 常量 9 30 输入输出 输入输出是以计算机主机为主体而言的 输出 Output 从主机向外部输出设备输出数据 输入 Input 从外部通过输入设备向主机输入数据 输入输出和库函数 按直线排列的字符序列每个序列包括0个或多个字符 并用换行符结尾ANSIC支持至少254个字符的序列所有的输入 输出都是用流来进行的 流 stream 10 30 标准输入输出流 开始执行程序时 3个流自动连接到程序上标准输入流 standardinput 对应的源端设备 keyboard标准输出流 standardoutput 对应的目的端设备 screen标准错误流 standarderror 对应的目的端设备 screen操作系统允许这些流重定向到其它设备 输入输出和库函数 typemyprog c prn 输出重定向符 myprog data txt 输入重定向符 11 30 输入输出函数 C语言中数据的输入 输出是由函数来实现的 字符输入函数 getchar 字符输出函数 putchar 格式输入函数 scanf 格式输出函数 printf 它们都属于函数库的输入输出函数 其原型 prototype 都在stdio h头文件 headerfile 中 程序中必须包含stdio h头文件 输入输出和库函数 include 12 30 字符输出 putchar使用形式putchar character 向标准输出流输出一个字符character 输入输出和库函数 举例 cw0302 c includeintmain chara intb a B b 79 putchar a putchar n putchar b putchar n putchar Y return0 BOY 使用说明character可以是以下数据 字符型数据整型数据转义字符 如果b 7或者10输出什么 13 30 字符输入 getchar使用形式variable getchar 从标准输入流读取一个字符 使用说明只读取一个字符 输入多于一个时只接收第一个字符 该字符可赋给字符变量 整型变量或作为表达式的一部分 输入输出和库函数 举例 cw0303 c includeintmain charc c getchar putchar c putchar n return0 aa abca 989 1 2 3 14 30 使用形式printf 按格式控制字符串规定的格式 向指定的输出设备输出列表中的输出项 输入输出和库函数 printf 格式控制字符串由双引号括起来的字符串 用于指定输出格式输出列表需要输出的数据列表 彼此间用逗号分隔 输出项可以是任意合法的表达式 使用说明 格式输入输出 printf 函数scanf 函数 格式输出 程序中一般必须指定包含stdio h头文件 使用说明 include 仅有printf可以省略此命令 15 30 格式输出 格式控制字符 输入输出和库函数 只表示将输出项转换成指定的格式输出 16 30 格式输出 格式修饰符 输入输出和库函数 17 30 l长整型整数 加在d o x u前Llongdouble型数 加在f e g前m表示数据占用的最小宽度数据宽度大于m 按实际宽度输出数据宽度小于m时 输出数据前或后补空格n对实数表示输出n位小数对字符串表示最多输出的字符个数改变输出内容的对齐方式 缺省为右对齐 指定在有符号数的正数前显示正号 0输出数值时指定左面不使用的空位置自动填0 在八进制和十六进制数前显示前导0 0 x printf附加格式说明符 18 30 输入输出和库函数 printf n 5d x 5d f 5 2f n 3 8 6 235 普通字符原样输出 格式说明符 转换规则 修饰符 格式字符指定数据的输出格式 5字符宽 2位小数 举例 例inta 1234 floatf 123 456 printf 08d n a 00001234printf 010 2f n f 0000123 46printf 0 8d n a 000 1234printf 0 10 2f n f 000 123 56 输出 19 30 格式输出 举例 输出不同格式的数cw0304 c includeintmain intx 97 b 1 a 567 floatf 123 456 printf d c n x x d改 i效果一样printf d o x u n b b b b printf f e gEND n f f f printf 8 2f n f printf 8 2f n f printf 8d n a printf 8d n a return0 VC 基本整型长4个字节 TC或者其他编译环境或者是不同的机型 结果可能不同 输入输出和库函数 20 30 格式输出 举例 cw0305 c 输入输出和库函数 intmain inta 1 b 2 c 3 printf d d d d n a b c d改 i效果一样printf d d d n a b c a b c return0 1 2 3 8981 2 3 格式说明符和输出项在数量和类型上应该一一对应 不同时间 结果可能不同 VC 6 0结果 可见输出的格式和项数由格式决定 有格式无输出项 则输出c变量之后的4字节内存值 21 30 scanf 使用形式scanf 按格式控制字符串规定的格式 从指定的输入设备读入数据 并存放到地址列表中的各地址项指定的变量中 格式输入 输入输出和库函数 用 d格式符 输入的数据必须是整数 用 f格式符 输入的数据可以是整数或浮点数 定点表示 指数表示均可 系统将自动转换为float型或double型 用 c格式符 输入的的字符不能加单引号 用 s格式符 输入的的字符串不必加双引号 但遇到空格 制表符 或换行符时将终止接收 对输入数据的要求 对于非格式字符串 输入时必须原样输入 即使是转义字符也必须输入 如果数值输入完后再输入字母则不能加格式分隔符 直接输入字母见实验教材P29体验2 只要能正确区分输入就不加任何多余的符号 请一定不要加转义字符 输入不能像输出一样加精度控制 5 2d 22 30 如果两个格式符之间无任何分隔符 输入时两个数据之间可以用下列符号分隔 空格Tab符回车 应使用回车键结束一个scanf函数中所有数据的输入 如果格式符之间有普通字符或转义符 输入时在对应的两个输入数据之间输入这些字符或转义符对应的符号 intm n scanf d d 例 输入 a 25 50 n 例 intm n scanf dABC d 输入 25ABC30 输入 2550 例 intm n scanf a d d n 输入几个字符间是不用分隔的 不用按空格 Tab键 回车 但输入完毕后要按回车键 使用说明 23 30 格式输入 格式字符 输入输出和库函数 24 30 格式输入 格式修饰符 输入输出和库函数 注意 scanf 函数中无精度控制 scanf 5 3f x 是错误的这里不能指定小数位数 与输出修饰符有明显的不同 25 30 输入输出和库函数 scanf d d a b 取地址运算符 得到变量在内存中的地址 地址列表 注意 数值输入完后的结束符可以是回车 空格 Tab键 也可以是其它字母 因此在下一个输入项是字符时 直接输入字符即可不用再按回车或者Tab键这里例如输入 8710045 3478 85Ac scanf d d a b 格式符间用逗号 输入数间也用逗号 格式符间无符号 输入数间用空格 请注意 scanf 2d 4d d x y z 终端输入 1234567 x为12 y为3456 z为7 如果输入1234567则x 1 y 2345 z 67 26 30 格式输入 举例 cw0306 c 输入输出和库函数 includeintmain chara b c scanf c c c 用c格式字符输入字符时 若格式控制字符串中无普通字符 那么认为所有输入的字符 包括空格 制表符 换行符 均为有效字符 输入缓冲区 输入流 输入流 scanf getchar TC VC 格式符间无符号 输入字符间不用空格 27 30 格式输入 用c格式字符输入字符时 若格式控制字符串中加入空格作为分隔符 那么输入时各数据之间可以加任意多个空格 制表符或回车符 例 scanf c c c 输入 abc 则a a b b c c输入多项数值数据时 格式控制字串中无非格式字符作输入数据间的分隔 在下列情况下可认为数据输入结束 遇到空格 回车 制表符 按指定的宽度结束遇非法输入结束 如用 d输入125A时A为非法输入 输入输出和库函数 28 30 输入输出和库函数 includevoidmain inta b floatx y charc1 c2 printf 请按格式输入2个整数 2个浮点数 2个字符 n 如果按书上的格式输入程序 则应当如下形式输入数据 a 3b 8x 9 34y 786 4c1 Ac2 a 注意 这里每一个输入语句中都没有换行符 否则结果不正确 为什么 因为节约内存 只要能区分开数值与字符就不加多余的按键 scanf a db d 按格式输入数据 则应当 a 3b 8x 9 34y 786 4c1 Ac2 a否则结果不对 为什么 因为节约内存 只要能区分开数值与字符就不加多余的按键 p28ty2 c实验教材P28体验2应当怎样输入 这样输入麻烦不麻烦 当然麻烦 因此 我们在写输入格式时 尽量不写原样输入的字符 要加提示 就在上行加printf 函数说明 29 30 数学库函数 使用标准库中的数学函数包含数学函数库的头文件 incl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)道路有偿协议书
- 2025广东广州市天河区棠福学校招聘特教教师1人考试备考试题及答案解析
- (2025年标准)当铺加盟连锁协议书
- 2025安徽合肥长丰县县城区域部分学校招聘教师50人考试模拟试题及答案解析
- 2025中国北京同仁堂(集团)有限责任公司招聘集团本部干部5人笔试模拟试题及答案解析
- 2025安徽合肥一中教育集团北城分校招聘教师48人考试参考题库附答案解析
- 2025江苏南京市第二医院招聘高层次人才20人考试备考试题及答案解析
- 2025广东省深圳“筑梦讲台·成就未来”-外国语学校(集团)龙华高中部教师招聘8人考试参考题库附答案解析
- 2025贵州六盘水六枝特区社会保险事业局招聘城镇公益性岗位3人笔试模拟试题及答案解析
- 素描课程教学大纲及指导方案
- 2025年辽宁省地质勘探矿业集团有限责任公司校园招聘笔试备考题库带答案详解
- 二次装修管理培训课件
- 工程结构检测与加固- 课件 第4、5章 钢结构检测与加固、混凝土结构检测与加固
- 混凝土结构-钢筋位置、钢筋保护层厚度考试试题及答案
- 译林版九年级上下册英语单词表(含音标)
- 员工工资明细表Excel模板
- 计数型MSA分析表格
- 枢纽经济:区域经济发展新动能
- 临床实验中不良事件的管理
- 如何开展课题研究
- 炼钢厂电工应知应会考试题库500题(含各题型)
评论
0/150
提交评论