scanf()的转换说明符
转换说明符 | 意义 |
%c | 把输入解释成一个字符 |
%d | 把输入解释成一个有符号十进制整数 |
%e,%f,%g,%a | 把输入解释成一个浮点数(%a是C99标准) |
%E,%F,%G,%A | 把输入解释成一个浮点数(%A是C99标准) |
%i | 把输入解释成一个有符号十进制整数 |
%o | 把输入解释成一个有符号八进制整数 |
%p | 把输入解释成一个指针(一个地址) |
%s | 把输入解释成一个字符串;输入的内容以第一个非空白字符作为开始,并且包含直到下一个空白字符的全白字符 |
%u | 把输入解释成一个无符号十进制整数 |
%x,%X | 把输入解释成一个有符号十六进制整数 |
scanf()的转换修饰符
修饰符 | 意义 |
* | 滞后赋值 示例:“%*d” |
Digit(s) | 最大字段宽度。在达到最大字段宽度或者遇到第一个空白字符时(不管哪个先发生都一样)停止对输入项的读取 示例:“%10s” |
hh | 把整数读作signed char 或unsigned char 示例:“%hhd”和“%hhu” |
ll | 把整数读作long long 或者unsigned long long 示例:“%lld”和“%llu” |
h,l或L | “%hd”和“%hi”指示该值将会存储在一个short int中。“%ho”、“%hx”和“%hu”指示该值将会存储在一个unsigned short int中。“%ld”和“%li”指示该值将会存储在一个long中。“%lo”、“%lx”和“%lu”指示该值将会存储在一个unsigned long中。“%le”、“%lf”和“%lg”指示该值以double类型存储。将L(而非l)与e、f和g一起使用指示该值以long double类型存储。如果没有这些修饰符,d、i、o和x指示int类型,而e、f和g指示float类型 |
*修饰符的用法-----在scanf()中*提供截然不同的服务,当把它放在%和说明符字母之间时,它使函数跳过相应的输入项目