字体
第(5/6)页
关灯
   存书签 书架管理 返回目录
输入的宽度(即字符数)。

    例如:

    scanf("%5d",&a);

    输入:12345678

    只把 12345 赋予变量 a,其余部分被截去。

    又如:

    scanf("%4d%4d",&a,&b);

    输入:12345678

    将把 1234 赋予 a,而把 5678 赋予 b。

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

    表示输入短整型数据。

    使用 scanf 函数还必须注意以下几点:

    1) scanf 函数中没有精度控制,如:scanf("%5.2f",&a);是非法的。不能企图用此语

    句输入小数为 2 位的实数。

    2) scanf 中要求给出变量地址,如给出变量名则会出错。如 scanf("%d",a);是非法

    的,应改为 scnaf("%d",&a);才是合法的。

    3) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则

    可用空格,TAB 或回车作间隔。C 编译在碰到空格,TAB,回车或非法数据(如对“%d”

    输入“12A”时,A 即为非法数据)时即认为该数据结束。

    4) 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有

    效字符。

    例如:

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    scanf("%c%c%c",&a,&b,&c);

    输入为:

    d   e   f

    则把'd'赋予 a, ' ' 赋予 b,'e'赋予 c。

    只有当输入为:

    def

    时,才能把'd'赋于 a,'e'赋予 b,'f'赋予 c。

    如果在格式控制中加入空格作为间隔,

    如:

    scanf ("%c %c %c",&a,&b,&c);

    则输入时各数据之间可加空格。

    【例 4.8】

    main(){

    char a,b;

    printf("input character a,b\n");

    scanf("%c%c",&a,&b);

    printf("%c%c\n",a,b);

    }

    由于 scanf 函数"%c%c"中没有空格,输入 M  N,结果输出只有 M。而输入改为 MN 时则

    可输出 MN 两字符。

    【例 4.9】

    main(){

    char a,b;

    printf("input character a,b\n");

    scanf("%c %c",&a,&b);

    printf("\n%c%c\n",a,b);

    }

    本例表示 scanf 格式控制串"%c %c"之间有空格时,输入的数据之间可以有空格间隔。

    5) 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

    例如:

    scanf("%d,%d,%d"
上一页 目录 下一页