这一类符号是“格式说明”用于格式输入与格式输出,就是我们常见的printf和scanf函数中在输入输出时,对不同类型的数据(如int,float,char等)要使用不同的格式说明。
其中%d,用来输出十进制整数%f,用来输出实数(包括单,双精度),以小数形式输出%c,用来输出一个字符%s,用来输出一个字符串格式输入输出还有很多的内容比如输出宽度,小数点个数等,可参考度娘相关内容。
扩展资料:
C语言中所有格式化类型的定义:
1、%d/i
接受整数值并将它表示为有符号的十进制整数,i是老式写法
2、%o
无符号8进制整数(不输出前缀0)
3、%u
无符号10进制整数
4、%x/X
无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
5、%f(lf)
单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同)
6、%e/E
科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
7、%g/G
有效位数,如%.8g表示单精度浮点数保留8位有效数字。
8、%c
字符型,可以把输入的数字按照ASCII码相应转换为对应的字符
9、%s/S
字符串,输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
10、%p
以16进制形式输出指针
11、%n
到此字符之前为止,一共输出的字符个数,不输出文本
12、%%
不进行转换,输出字符‘%’(百分号)本身
参考资料来源:百度百科-printf
C语言中,%是转义符,也就是和%一起出现的后面的内容会转义后输出,这三种输出的意义是不同的:
1、%d,表示按整型输出后面给出的变量的值。
2、%%d ,这就会被拆成两部分看待,一是“%%”在C语言中就是输出一个“%”,而是“d”就是一个普通字符,所以当“%%d”在一起时,其含义就是输出“%d”这两个字符。
3、%%%d ,3个%在一起,进行拆分的话,%%代表一个“%”字符,后面的%d又代表整型输出变量的值,所以当“%%%d”一起时,其最终含义就是输出一个字符%号再接着按整型输出变量的值。
为了加深理解,我们通过几个例子来了解:
例如:
int i=4
printf("%d\n",i)//此条输出结果为:4
printf("%%d\n")//此条语句输出结果为:%d
printf("%%%d\n",i,i)//此条语句输出结果为:%4
上述代码执行后,输出结果为:
4
%d
%4
扩展资料:
在C语言中,%有两种用法:
1、%是求余符号 经常会用到判断一个数是不是能被另一个整除。
如:7%3=1(7除以3 余下1,) 1%3=1(1除以3除不尽 余下1)
如判断一个m是奇数还是偶数 if(m%2==0) printf("偶数")
2、用作转义引导符,用于引导输入输出项表列的格式。
例如:printf("%d%c%f",a,b,c)意思就是a以整型输出 b以字符型 输出 c以实型输出
都是两个整型的通配符,可以用于格式化输入/输出函数内。如printf和scanf。一、当用于输出时:
1.
%d%d的输出形式,两个整型的结果是相连的,中间没有任何分隔。比如两个数分别为123,和456,那么会输出
123456
2.
%d,%d的格式,输出时两个整型数值会以逗号分隔。同上例,会输出
123,456
从以上区别上看,用逗号分隔的输出效果更好。
二、当用于输入时,二者对输入的格式要求不同。
1.
用%d%d输入时,没有指定输入的间隔,这时凡是不可见字符,包括空格'
',制表符'\t',换行符'\n'均可以用作输入的分隔。
2.
用%d,%d输入时,限定格式必须是以逗号分隔。即当输入完第一个数时,必须紧跟一个逗号,否则输入会出错。
需要说明的时,这种格式只限定第一个数字后必须为逗号,而逗号和第二个数字之间是否有不可见字符,并没有要求。
从输入的区别上看,使用无分隔方式输入时更为灵活。