scanf的一些小细节

格式字符串

格式字符串的一般形式为:
    %[*][输入数据宽度][长度]类型
其中有方括号[]的项为任选项。各项的意义如下。

1) 类型
表示输入数据的类型,其格式符和意义如下表所示。
格式 字符意义
d 输入十进制整数
o 输入八进制整数
x 输入十六进制整数
u 输入无符号十进制整数
f或e 输入实型数(用小数形式或指数形式)
c 输入单个字符
s 输入字符串

2) “*”符
用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如:
 
    
  1. scanf("%d %*d %d",&a,&b);
当输入为:1   2   3时,把1赋予a,2被跳过,3赋予b。

3) 宽度
用十进制整数指定输入的宽度(即字符数)。例如:
 
    
  1. scanf("%5d",&a);
输入12345678只把12345赋予变量a,其余部分被截去。又如:
 
    
  1. scanf("%4d%4d",&a,&b);
输入12345678将把1234赋予a,而把5678赋予b。

4) 长度

长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。

输入字符串中有空格时候 可以用%[^\n]

  1. scanf函数中没有精度控制,如:scanf("%5.2f",&a);是非法的。不能企图用此语句输入小数为2位的实数。


你可能感兴趣的:(C语言)