scanf的一些小细节

来源:互联网 发布:二级域名cdn后主域名 编辑:程序博客网 时间:2024/06/05 02:50

格式字符串

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

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位的实数。


0 0
原创粉丝点击