



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
printf与scanf函数格式控制符的完整格式2010-9-151. 说明当使用printf或scanf函数时,需要在源代码文件头部包含,即需要增加以下预处理命令。#inlcude (1) printf函数的调用形式为:printf(格式描述字符串, 其他参数1, 其他参数2, , 其他参数n);其他参数是可选的。其中格式描述字符串中可包含特殊以%开始的转换描述符(转化字符),转换描述符的作用是把其他参数中的数据填充到格式描述字符串中进行输出。所以,转换描述符的个数必须与其他参数的格式一致,且其相互对应的关系也有一些规定(详见裘宗燕书29页表格,更深入的查看第8章276页)。(2) scanf函数的调用形式为:scanf (格式描述字符串, &变量名1, &变量名2, &变量名k);scanf从键盘(或标准输入)读取信息,按给定的格式描述把读入信息转换为指定数据类型的数据。把得到的结果赋给指定变量。scanf是与printf对应的输入函数。其格式描述字符串与printf的类似,其中可以包含一个或者多个转换描述(同样以%开始)。变量的个数必须与格式串中的转换描述个数一致,书写形式是在变量名前加&符号,对于一般类型(整型、实型和字符型)的变量,这个符号是必须的(详见第4章102页和第8章272页)。2. printf的格式控制的完整格式%-0m.n l或h 格式字符下面对组成格式说明的各项加以说明:%:表示格式说明的起始符号,不可缺少。-:有-表示左对齐输出,如省略表示右对齐输出。0:有0表示指定空位填0,如省略表示指定空位不填。m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。格式字符格式字符用以指定输出项的数据类型和输出格式。d格式:用来输出十进制整数。有以下几种用法:%d:按整型数据的实际长度输出。%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。%ld:输出长整型数据。o格式:以无符号八进制形式输出整数。对长整型可以用%lo格式输出。同样也可以指定字段宽度用“%mo”格式输出。例(该例子大家可不看!): main() int a = -1; printf(%d, %o, a, a); 运行结果:-1,177777 程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。x格式:以无符号十六进制形式输出整数。对长整型可以用%lx格式输出。同样也可以指定字段宽度用%mx格式输出。u格式:以无符号十进制形式输出整数。对长整型可以用%lu格式输出。同样也可以指定字段宽度用“%mu”格式输出。c格式:输出一个字符。s格式:用来输出一个串。有几种用法%s:例如:printf(%s, CHINA)输出CHINA字符串(不包括双引号)。%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果nm,则自动取n值,即保证n个字符正常输出。f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:%f:不指定宽度,整数部分全部输出并输出6位小数。%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。e格式:以指数形式输出实数。可用以下形式:%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。%m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。3. scanf格式控制的完整形式% * m l或h 格式字符最常用及建议的使用形式为:scanf(%d%c%s, &a, &b, &c). 输入时采用隐式分隔符(空格、Tab、换行符)分隔不同的数据。格式字符与printf函数中的使用方式相同,以%d、%o、%x、%c、%s、%f、%e,无%u格式、%g格式。可以指定输入数据所占列宽,系统自动按它截取所需数据。如:scanf(%3d%3d, &a, &b);输入:123456系统自动将123赋给a,456赋给b。%后的*附加说明符,用来表示跳过它相应的数据。例如:scanf(%2d%*3d%2d, &a, &b);如果输入如下信息:1234567。将12赋给a,67赋给b。第二个数据345被跳过不赋给任何变量。输入数据时不能规定精度,例如:scanf(%7.2f,&a);是不合法的,不能企图输入:12345.67而使a的值为12345.67。相关输入数据流分隔根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束。如:scanf(%d%c%f, &a, &b, &c);如果输入如下信息:1234r1234.567则scanf函数在接收数据时发现r类型不匹配,于是把1234转换成整型赋值给a,把r赋给变量b,最后把1234.567转换成实型数据赋给c。根据格式项中指定的域宽分隔出数据项。如语句:scanf(%2d%3f%4f, &a, &b, &c);如果输入如下信息:123456789012345 则scanf函数在接收数据时根据域宽把12赋值给a,345赋值给b,6789赋值给c。隐式分隔符。空格、跳格符(t)、换行符(n)都是C语言认定的数据分隔符。显式分隔符。在scanf函数的两个格式说明项间有一个或多个普通字符,那么在输入数据时,在两个数据之间也必须以这一个或多个字符分隔。如语句:scanf(a=%d,b=%f,c=%f, &a, &b, &c);则输入数据应该为: a=1234,b=67.8,c=98.123关于scanf函数的进一步说明: scanf 函数中的“格式控制”后面应当是变量地址,而不应是变量名。例如,如果a、b为整型变量,则scanf(%d,%d, a, b);是不对的,应将“a,b”改为“&a, &b”。如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。例如:scanf(%d,%d, &a, &b);输入时应输入:3,4。3与4之间的逗号应与scanf函数中的“格式控制”中的逗号相对应,输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年查对制度考试复习题库及答案解析
- 土建监理案例考试题及答案
- 2025年海洋工程装备升级:海水淡化反渗透膜技术创新在海洋工程装备升级中的应用
- 小升初网络测试题及答案
- 2025年心脏外科手术操作技巧模拟考试答案及解析
- 测呼吸技能考试题及答案
- 税务征管考试题目及答案
- 2025年妇产科学院妊娠并发症处理能力模拟考试答案及解析
- 2025年重症监护护理知识理论考核答案及解析
- 2025年医学伦理法律规范审查答案及解析
- 云南师大附中2024年数学高一下期末联考试题含解析
- 供应链管理综合实验实验报告
- (正式版)JBT 5300-2024 工业用阀门材料 选用指南
- 2024量子人工智能技术白皮书-量子信息网络产业联盟-2024.1
- 公务员考试培训-判断推理通关秘籍
- 第13课《警惕可怕的狂犬病》 课件
- 《C++语言基础》全套课件(完整版)
- 《社会工作伦理案例分析》课件 儿童和青少年社会工作伦理
- HSK标准教程5下-课件-L2
- 毕业设计论文-计算机类
- 工作单位接收函
评论
0/150
提交评论