C语⾔中%d,%o,%f,%e,%x的意义
格式说明由“%”和格式字符组成,如%d%f等。它的作⽤是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据⽤不同的格式字符。格式字符有d,o,x,u,c,s,f,e,g等。如
1. %d整型输出,c语言定义一个字符串
2. %ld长整型输出,
3. %o以⼋进制数形式输出整数,
4. %x以⼗六进制数形式输出整数,
5. %u以⼗进制数输出unsigned型数据(⽆符号数)。
6. %c⽤来输出⼀个字符,
7. %s⽤来输出⼀个字符串,
8. %f⽤来输出实数,以⼩数形式输出,
9. %e以指数形式输出实数,
10. %g根据⼤⼩⾃动选f格式或e格式,且不输出⽆意义的零。
C语⾔中没有格式说明符对应⼆进制形式的输出和输⼊,如果想以⼆进制形式输出某个数,可以使⽤⾃定义函数来实现。
#include <stdio.h>
void_printBinary(int a)//递归打印正⼆进制形式数
{
if(!a)return;
_printBinary(a/2);
printf("%d", a%2);
}
void printBinary(int a)//以⼆进制形式打印所有int型数
{
if(a == 0){
printf("0");
return;
}
if(a < 0){
printf("-");
a = -a;
}
_printBinary(a);
}
int main()
{
int a = 11;
printBinary(a);
return0;
}
⽐如这⾥的printf("c=%#x\n",c);什么意思呢:
这⾥的"c=%#x\n"意思是:是⼀个格式控制符,其中c=是普通字符,%#x是格式说明,\n是;其中的%#表⽰的输出提⽰⽅式,如果是8进制,在前⾯加0,如果是⼗进制,不加任何字符,如果是⼗六进制,会加上0x
举例说明:当c='\x41';//这⾥应该是单引号
当执⾏:printf("c=%#o\n",c);输出的是:0101(把16进制41转化为2进制)
printf("c=%#d\n",c);输出的是:65(把16进制41转化为10进制)
printf("c=%#x\n",c);输出的是:0x41
scanf(控制字符,地址列表) 格式字符的含义同printf函数,地址列表是由若⼲个地址组成的表列,可以是变量的地址,或字符串的⾸地址。如scanf("%d%c%s",&a,&b,str);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论