前言
简单记录一下scanf的使用。
scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数。
正文
scanf说明
语法:
#include <stdio.h> int scanf( const char *format, ... );
PS:返回的int是根据format成功读取到的个数!
format(格式)字符串由控制字符,空白字符和非空白字符组成。
控制字符以一个%符号开始,如下:
控制字符 说明 %c 一个单一的字符 %d 一个十进制整数 %i 一个整数 %e, %f, %g 一个浮点数 %o 一个八进制数 %s 一个字符串 %x 一个十六进制数 %p 一个指针 %n 一个等于读取字符数量的整数 %u 一个无符号整数 %[] 一个字符集 %% 一个精度符号
scanf()读取匹配format(格式)字符串的输入。当读取到一个控制字符,它把值放置到下一个变量。空白(tabs, 空格等等)会跳过。 非空白字符和输入匹配,然后丢弃。如果是一个在%符号和控制符间的数量, 那么只有指定数量的字符转换到变量中。 如果scanf()遇到一个字符集(用%[]控制字符表示), 那么在括号中的任意字符都会读取到变量中。 scanf()的返回值是成功赋值的变量数量, 发生错误时返回EOF。
format有逗号
int num = scanf("%d,%d", &a, &b); printf("a = %d \n", a); printf("b = %d \n", b); printf("num = %d \n", num);
以逗号分割
1,2 a = 1 b = 2 num = 2
以空格分割
1 2 a = 1 b = 0 num = 1
format有空格
int num = scanf("%d %d", &a, &b); printf("a = %d \n", a); printf("b = %d \n", b); printf("num = %d \n", num);
以空格分割
1 2 a = 1 b = 2 num = 2
以逗号分割
1,2 a = 1 b = 0 num = 1
小结
如果format= “%d,%d”以逗号分割,必须带入逗号
如果format= “%d %d”以空格分割,必须带入空格
参考文章
《》
© 版权声明