- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.2.6 %o格式符——以八进制形式输出整数
O是octal(八进制的)的第一个字母.%o是以八进制形式 输出整数.注意因为是将内存单元中的数值按八进制的形 式输出,所以不区分符号位,也就是将符号位也当作八进 制数的一部分.可以看作是将内存中保存的二进制数据按 八进制的形式转换后打印出来.例如-1在内存中以补码形 式存放,二进制为1111 1111 1111 1111 1111 1111 1111 1111.虽然最高为1,表示负号,但是转换成八进制表示, 就是37777777777.如果用4个字节来存储整数,可以说-1 就是等于0xffffffff.因为它们在内存中的形式一模一样. int x=-1; printf("\n%d,%o",x,x); 输出结果 符
在d前,可以添加数字,表示输出最小宽度.比如 %4d,表示显示一个整数,最小占用4个字符的宽 度,如果这个数只有3位,则在前面用空格填充. 如果这个数的位数大于4,则按实际位数输出.如: Int x=-1,y=100001; Printf("%4d,%4d",x,y); 输出结果: -1,100001 Int x=-100000,y=20000,z=30000; Printf("%4d,%4d,%4d",x,y,z); 结果: -100000,20000,30000;
5.2.9 %c格式符
%c格式符用来输出一个字符.如: char c='c'; printf("%c",c); 输出结果: c 这里出现了好几个c,请读者注意分辨: char c='c';第一个c,是变量名,表示这个变量的名字是c.'c', 是一个字符常量,在内存中用ASCII码99表示.这一行是声明了一个变量c, 并且给该变量赋初值为'c'.变量c中内存中的数值是99,因为存储的是 'c'的ASCII码. printf("%c",c);第一个c,是和%一起,%c,表示的是一个格式控制字 符,意思是把后面的数据用字符的形式显示出来.逗号后的那个c,是一 个字符变量.因为这个变量中内存中存储的是'c'的ASCII码.所以按照 %c的方式打印,则打印出99对应的字符为'c',结果就打印出来c. printf("%c",99); 结果: c
第5章 用屏幕和键盘交互——简单的输出和输入 计算机主要功能就是获取输入,根据输入的数据, 计算处理后,输出结果.类似的过程,人类也是 一样的处理流程.计算机的输入,最常见的是通 过键盘和鼠标,输出,最常见的是显示器.本章 介绍如何显示字符和字符串到显示器屏幕,以及 如何接受用户的键盘输入.
5.1 输入—处理—输出:这就是程序
5.2.10 %s格式符——输出字符串
%s格式符用来输出字符串.后面的输出列表中的数据必须是字符串.用%s格式输出字符串,可以在%和s之间,添加其 他的一些辅助格式,如最小宽度,对齐方式等. (1)%s格式,最简单的情况,如: printf("%s","hello world"); 输出结果: hello world (2)%ms 同样地,也可以指定字符串占用的最小宽度,通过%ms的方式,其中的m是一个整数,指明这个字符串的最小宽度.如 果字符串本身的宽度不足指定的最小宽度,则前面用空格补齐.如hello world只占用11个字符宽度,但是如果指定宽 度为20,则会补在前面9个空格: printf("%20s","hello world"); 输出结果: hello world (3)%-ms格式 %-ms中的m,也是指定最小宽度,是一个整数;"-"表示是左对齐,就是如果字符串长度比指定的最小宽度还小,则 在右边补空格,不像%ms那样子左边补空格. (4)%m.ns %m.ns中的m,还是指定最小宽度,而n,是指显示的时候,只显示字符串中前n个字符.如hello world前3个字符是hel, 前7个字符是hello w.如: printf("%20.7s","how are you?"); 显示结果 how are (5)%-m.ns %-m.ns中的"-",同样是指左对齐,如果显示的字符串宽度小于指定的最小宽度,则在右边补空格.如: printf("%-20.70s|----","how are you?"); 输出结果: how are you? |----
5.2.5 %ld格式符——以长整型方式输出
以长整型方式输出.如果后面的数据是一个长整型,而格式符是%d,则格 式符和数据的类型不匹配,会丢失数据.当然一般在现在的计算机上, int和long数据长度一样,所以出错的可能性比较低.但是记住,对long 型数据,需要使用%ld,这样无论在什么机器上编译运行都不会错.一个 位数小于long的整型数据,都可以用ld的形式输出. 同样地,也可以对长整型输出格式指定最新宽度.如%10ld. long x=0x10001; int y=-200; printf("%8ld,%10ld",x,y); 输出为: 65537, -200 需要注意的是,%d系列的格式符要求后面的数据都必须是整型数据.如果 数据为实型数据,则显示错误的值.如: long x=0x10001; float y=-200; printf("%8ld,%10ld",x,y); 输出结果: 65537, 0
5.2.12 %e格式符——以指数形式输出实数
%e格式符是以指数形式输出实数.所谓指数形式就是类似1.234e+002之类 的形式. (1)%e 不指定输出来的数据在屏幕中所占的字符个数宽度,也不指定数字部分和 小数部分位数,由系统自动指定,给出6位小数,指数5位,如e+002,其 中e占一位,+或者-占一位,指数占3位.数值按标准化指数形式输出,所 谓标准化指数形式是指整数部分有且仅有一位非零数字,如: float x=123.456; printf("%e",x); 输出结果: 1.234560e+002 (2)%m.ne,%-m.ne 同样地,可以指定整个数据输出来占用的字符个数宽度,用m指定,可以 通过n来指定数据的数字部分的小数位数.如: float x=1234567890123456789.456; printf("%e-%10e-%10.2e-%20.10e",x,x,x,x); 输出结果: 1.234568e+018-1.234568e+018- 1.23e+018- 1.2345679396e+018
5.2.2 格式字符串一般形式
格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]转换说明符 其中方括号[]中的项为可选项,即可根据需要加上,也可以不加. 转换说明符用以表示输出数据的类型,其格式符和意义如所示:
5.2.3 %d——十进制形式输出带符号整数
用得最多的格式符.以十进制形式输出带符号整数,正数 不输出符号. printf("%d",10); 输出结果为: 10 printf("%d",0x10); 输出结果为: 16 因为0x10是十六进制,转换成十进制就是16了. printf("%d",0xffffffff); 输出结果为: -1
工厂的生产车间生产出来的产品是最终的输出.比如某药 厂生产的保健药,号称是经历了80多道工序.这些工序, 当然是从输入原材料开始,每道工序处理一件事情,最终 出来包装精美的保健药品. 第一道工序,清洗,输入的是刚刚采摘下来的药材,有不 少的烂叶子,烂根,清洗工序处理这些东西,处理完毕后, 输出来的是干净的有用的药材. 第二道工序,榨汁,输入的是干净有用的药材,榨汁工序 处理时,添加纯净水,榨出药汁.接着说萃取工序,将药 汁中的有用的部分萃取出来……80多道工序就这样一一处 理完毕,保健药就制作完毕. 从进场时的原材料,到最终出产的保健药,就是一个"输 入—处理—输出"的过程.深入到药厂中的处理部分,80 多道工序,每个工序也是一个"输入—处理—输出"的过 程.没有输入,就没有处理的素材,也就没有输出.
5.2.1 printf函数的一般形式
printf函数是一个标准的C语言库函数,它的函数 原型在头文件"stdio.h"中.printf函数的一般 格式是: printf("格式控制字符串",输出列表); (1)格式控制字符串 (2)输出列表 格式控制字符串后跟着的就是输出列表,注意输 出列表和格式控制字符串之间的逗号.输出列表 可以有多个数据,用逗号","分隔.
5.2 向屏幕输出——printf函数详解
printf函数已经接触过,功能是在电脑屏幕上按 照指定的格式显示数据.printf其中的f代表单词 format,就是格式化的意思.所谓格式化,是该 函数预先给程序员定义了一批显示格式,如对齐, 显示宽度,按什么类型显示等,程序员可以选择 其中的某些格式,遵守这些格式,printf函数就 可以按照指定的格式来显示数据了. 注意:printf函数只能在控制台程序中使用,在 Windows系统中,有窗口界面的程序无法通过 printf函数在窗口中显示数据.
5.2.8 %u格式符——以十进制形式输出unsigned型数据
%u格式符以十进制形式输出unsigned型数据,即无符号数.在输出的时候, printf函数把数据当作无符号型数据,而不管这个变量当初声明的时候是 什么类型.也就是先取变量的值,从内存中把数据的二进制数据取出来, 然后将数据按照unsigned形式显示出来. 一个有符号整数如int型,也可以用%u的格式输出.如: int x=-1; printf("%u",x); 输出结果: 4294967295 变量x在内存中的值是0xffffffff.%u格式控制符表示,忽视这个数据的 具体类型,按照指定的无符号格式解释,0xffffffff用十进制表示,就是 4294967295. unsigned型数据也可以用%x和%o格式输出.如: unsigned int x=-1; printf("%x,%d",x,x); 输出结果: ffffffff,-1