scanf大概率只是在C语言上机作业或者算法比赛或考试中广泛使用的一个函数,在实际项目中直接使用的概率应该很低,但是做一些算法模拟的时候却很有用处,值得花点时间稍微掌握一下。
scanf的输入格式
格式控制符 | 说明 |
---|---|
%c | 读取单个字符 |
%s | 读取一个字符串(以空格或者回车等为结束条件,注意遇空格即结束) |
%d | 读取十进制整数,赋给int类型变量 |
%hd | 读取十进制整数,赋给short类型变量 |
%ld | 读取十进制整数,赋给long类型变量 |
%o | 读取八进制整数,赋给int类型变量 |
%ho | 读取八进制整数,赋给short类型变量 |
%lo | 读取八进制整数,赋给long类型变量 |
%x | 读取十六进制整数,赋给int类型变量 |
%hx | 读取十六进制整数,赋给short类型变量 |
%lx | 读取十六进制整数,赋给long类型变量 |
%u | 读取十进制整数,赋给unsigned int类型变量 |
%hu | 读取十进制整数,赋给unsigned short类型变量 |
%lx | 读取十进制整数,赋给unsigned long类型变量 |
%f | 读取十进制浮点数,赋给float类型变量 |
%lf | 读取十进制浮点数,赋给double类型变量 |
%e | 读取指数形势的浮点数,赋给float类型变量 |
%le | 读取指数形势的浮点数,赋给double类型变量 |
%g | 读取十进制或者指数形势的浮点数,赋给float类型变量 |
%lg | 读取十进制或者指数形势的浮点数,赋给double类型变量 |
注:诸如%a之类的C99等支持的格式并未展开
从一个简单的示例开始
示例代码如下
#include <stdio.h>
#include <string.h>
int main() {
char str[20];
while