%d

格式转换说明符scanf,printf格式%大全/格式化输入输出

雨燕双飞 提交于 2020-03-01 09:58:14
相信不管大神还是菜鳥,都认得printf.它家还有兄弟sprintf,scanf,sscanf...$^&* 当你华丽丽的写下char c='c';printf("char=%d",c);的时候,一切都还是那么美好. 不过当你声明一个char buf[2];然后sscanf("30000","%d",buf);的时候,就不那么好玩了. 本以为2个字节足够装下32767以内的数字,却把内存写爆了. 此处关键就是格式符乱写产生的问题. 此时最想要的就是一份完整的可用格式表. 苦于每次都只能找到零星点点还不全,本来打算在此收集做一个全集,在收集过程中发现了一个完整版本转来 格式转换说明符 printf() / scanf()                   表一 转换说明符及作为结果的打印输出 转换说明 输 出 %a 浮点数、十六进制数字和 p- 记数法 (C99) %A 浮点数、十六进制数字和 P- 记数法 (C99) %c 一个字符 %d 有符号十进制整数 %e 浮点数、 e- 记数法 %E 浮点数、 E- 记数法 %f 浮点数,十进制记数法 %g 根据数值不同自动选择 %f 或者 %e 。 %e 格式在指数小于 -4 或者大于等于精度时使用 %G 根据数值不同自动选择 %f 或者 %E 。 %E 格式在指数小于 -4 或者大于等于精度时使用 %i 有符号十进制整数 ( 与 %d

C中的%d,%o,%f,%e,%x的区别

随声附和 提交于 2019-12-25 13:45:37
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> C中的格式字符有d,o,x,u,c,s,f,e,g等,之前有看到其中某些可以大写(待确定)。 如: %d整型输出,%ld长整型输出, %o以八进制数形式输出整数, %x以十六进制数形式输出整数, %u以十进制数输出unsigned型数据(无符号数)。 %c用来输出一个字符, %s用来输出一个字符串, %f用来输出实数,以小数形式输出, %e以指数形式输出实数, %g根据大小 自动 选f格式或e格式,且 不输 出无意义的 零 。 c语言中以16进制输出时%0x和%x有什么区别? 标准C语言库函数fprintf/printf格式字符串的转换说明形式是这样的: %[标志][最小输出宽度][.精度][长度修正符]类型 方括号括起来为option项目。 当[标志]是0或多个标志字符,可以是任意顺序,常用有以下几个: - 左对齐,缺省是右对齐。 + 带符号的值前面总是有个符号,也就是正数前面有+号,负数前面有-号。 0 输出值的宽度小于最小宽度的话,用0填充,缺省是用空格填充。 0也是是一个标志字符,意思就是用0填充 特殊情况:C语言%p的含义: 格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数