输出函数printfprintf函数的格式为-Read

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
printf语句就将内存数据项sum根据格式%d进行转换 并显示出来。输出项是各种有值的表达式。 printf函数可存在一个以上的输出数据,一般输出格式 控制的格式转换字符与输出项的个数一致。它们根据各自的 次序一一对应,如下所示:
printf ("...x =%f, ... y=%x, ...z=%d,...\n", x, y, z );
格式转换说明符数多于其后表达式的个数则结果是不确 定的,此种情况应予以避免,即禁止 printf ("%d, %f,%d",x, y) 的形式。如果格式转换符数少于表达式的个数,后面多余的 表达式将不予转换处理。
3
1、整型数的格式输出转换
(1) %d或%i 输出有符号十进制数,根据实际长度输 出。 %d与%i在scanf系列函数中有所不同。无宽度控制 时,多个数据首尾相连地输出。例如: printf ("%d, %d",12,12345); //输出12,12345 (2) %ld,l表示long型数据的转换,%hd,h表示short型 数据的转换。下面用醒目地表示空格。 long a=12345678L; short b=4321; printf ("%9ld,%3hd",a,b); //输出:1234565678,4321 printf 函数显示时不保留数据的后缀。后缀用于鉴别数 据的确切类型。
5
(4) %o将整数以8进制形式输出; %x将整数以16进制形式输出; %u将整数以10进制形式输出; 这三个格式无论整数是有符号或无符号,一律将二进制 数据的最高位作为数据的有效部分转换即视为无符号数输出。 内存数据是二进制的是唯一的,显示的方式则是多样的。 %0wx , %0wu格式控制中的0表示输出前导字符0,差 额处补0。输出宽度为w。
七、输出函数printf 八、输入格式转换函数scanf
1
七、输出函数printf
printf函数的格式为: printf ("输出格式控制",输出项1,输出项2,...); 输出格式控制由转义序列、格式转换说明符和普通字符 构成, 格式转换说明符由“%”和格式字符组成,如"%d,%f“ 中的d,f是格式字符。 它们结合在一起指定内存数据的输出格式。普通字符是 原样输出的字符。如: printf ( "Sum is %d,\n", sum) 中的Sum 以及逗号是普通字符。 "\n"对应回车换行的转义序列,转义序列的作用是输出控制 代码和特殊字符。
6
[例] #include <stdio.h> void main () //定义在函数体中的变量a,b是局部变量 { signed short a=65535; // warning: 'initializing' : truncation from 'const int' to 'short' unsigned short b=-1; //-1初始化无符号的短整型数b printf ("[%hd, %4hu, %4ho, %x]\n", a, a, a, a); //输出:[-1,65535,177777,ffffffff] printf ("[%hd, %4hu, %4ho, %x ]\n", b, b, b, b); //输出:[-1,65535,177777,ffff ] } //sizeof (0xffff)= sizeof (-1)=4
4
(3) %wd, %0wd,%-wd 。 %wd 为右对齐方式。%-wd 为左对齐方式。宽度w为 指定的输出字符个数,如果数据的字符个数小于w,左段补 充空格。 %0wd格式控制中的0表示输出前导字符0,左边差额处 补0。 如果数据的字符个数大于w,输出实际数据的长度。 右对齐方式左补空格,左对齐方式右补空格。 printf ("%5d, %5d", 12,123456); //输出12,123456 printf ("%05d,%05d",12,123456); //输出00012,123456
7
关于vc6.0输出的说Βιβλιοθήκη Baidu:
65535相当于0x0000ffff,-1是正1算术负的结果相当于 0xffffffff,这两个整型常数为4字节的,a,b是两字节的短整 型变量,初始赋值a=65535,b=-1使得a,b在内存的二进制 数据是16个1即1111111111111111。 h修饰符对a,b内存的二进制数按短整型转换输出, %hd对内存最高位为1的数进行间接求补输出-1。 %hu将内存的最高位视为数据的一部分,因此输出十 进制数65535。
8
[例] #include <stdio.h> //定义在函数外全局范围的变量a,b是全局变量 signed short a=65535;
// warning: 'initializing' : truncation from 'const int' to 'short'
unsigned short b=-1; //-1的内存状态是唯一的,内存状态的解释或输出是多样的 void main () { printf ("[ %d, %u, %010X]\n",a,a,a); //输出:[-1,4294967295,00FFFFFFFF] printf ("[%d,%u,%012X]\n",b,b,b); //输出:[65535,65535,00000000FFFF] } //int型数据在32位模式占4个字节
9
当不存在修饰符h时,%d,%u输出int型数据,对于1 6bit二进制数1111111111111111;
如果这个数视为有符号的,则带符号扩展,最高位为1 时扩展为32为16进制的0xffffffff。 如果这个数视为无符号的,则最高的16位填充以0,因 此扩展为16进制的0x0000ffff。
10
2、字符和字符串的输出转换
(1) %c将值在0~255的整数即1字节整数以字符方式输 出。可以指定格式宽度。例如: int a=97; printf( "%d, %c ", a, a); //输出:97,a char c='c'; printf ("%d, %c ", c, c); //输出:99,c char b='b'; printf ("%3d,%3c ",b, b); //输出:98,b printf ("%-3d, % - 3c ", b, b); //输出:98,b
相关文档
最新文档