格式符

格式转换说明符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语言基础-02-printf和scanf函数

巧了我就是萌 提交于 2019-12-09 18:06:52
一、printf函数 这是 在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以 向标准输出设备(比如屏幕)输出数据 1.用法 1> printf(字符串) printf("Hello, World!"); 输出结果是: 2> printf(字符串, 格式符参数) // 使用常量作参数 printf("My age is %d\n", 26); // 也可以使用变量 int age = 17; printf("My age is %d", age); * 格式符 %d表示以有符号的十进制形式输出一个 整型, 格式符 参数中的26和age会代替%d的 位置 。 * 第2行代码中的\n是 个转义字符,表示换行,所以输出 了第一句"My age is 26"后会先换行,再输出"My age is 27" 输出结果: * 如果 去掉第2行中的\n,将会是 这样的效果 输出结果: 总结: 左边字符串中 格式符 的个数 必须跟 右边 格式符 参数的个数一样; 格式符 的类型决定了 格式符 参数的类型 ,比如使用%d,说明对应的 格式符 参数必须是整型。 再举个例子: printf("My age is %d and no is %d", 27, 1); 输出结果: 2.常用的格式 符及其含义 3.格式符还可以添加一些精细的格式控制 1> 输出宽度