第二章-c语言中的输入函数scanf

六、数据的格式化输入
  1. 格式化输入函数:scanf()

    (1) 函数格式:scanf("格式控制",地址列表);
    (2) 功能:按照"格式控制"所规定的格式,给"地址列表"所对应的存储单元输入数据
    (3) 例如:
            int a,b;
    		printf("输入两个整数:");
    		scanf("%d,%d",&a,&b);
    		printf("a=%d,b=%d",a,b); 
    
  2. scanf格式说明:

    格式字符说明
    %d输入有符号十进制整数数据
    %o输入无符号八进制整数
    %x 或是 %X输入无符号十六进制整数
    %u输入无符号十进制整数
    %c输入一个字符
    %s输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开头,
    以一个空白字符结束。字符串结束标志 “\0” 作为最后一个字符
    %f输入实数(浮点数),可以用小数形式或是指数形式输入
    %e、%E、%g、%G与 %f作用相同,e与f、g可以相互互换(大小写作用相同)
  3. scanf函数的修饰符

    修饰符格式说明解释
    l“%ld”用于输入长整数数据"%ld"、“%lo”、“%lx”
    double型数据:“%lf” 、“%le”
    h“%hd”用于输入短整型数据,如:“%hd”、“%ho”、“%hx”
    m“%3d”指定输入数据所占宽度
    例如:scanf(“%3d%3d”,&a,&b);
    输入:123456,系统会自动将123赋值给 a,456赋值给b
    *“%*”本输入项在读入后,不赋给相应的变量
    例如:scanf(“%2d %*3d %2d” , &a, &b);
    输入:12 345 67
    系统将12赋值给a,读取到345,但是不赋值给任何变量,然后读取67赋值给b
  4. 使用scanf函数注意细节

    (1) scanf函数中的格式控制后面应当是变量地址(带 &),而不是变量名:
        正确的写法:int a, b;
                  scanf("%f%f",&a,&b);
        错误的写法:int a, b;
                  scanf("%f%f",a,b);
    (2) 如果在格式控制字符串中除了格式声明以外还有其他字符,则输入数据时,在对应的位置上应输入相同字符:
        int a, b , c;
        scanf("a=%d,b=%d,c=%d",&a,&b,&c);
        正确的输入:a=1,b=3,c=23
        错误的输入:3 7 8  
        错误的输入:a=1 b=8 c=3
    (3) 在使用"%c"格式化声明输入字符时,空格字符和转义字符中的字符都作为有效字符:
        char c1,c2; 
    	scanf("%c%c",&c1,&c2);
    	printf("c1=%c,c2=%c",c1,c2); 
    	正确输入:ew  , 打印结果:c1=e,c2=w
    	错误输入:e w , 打印结果:c1=e,c2=   (系统自动将中间空格分配给c2)
    (4) 在输入数值数据时,如输入空格、回车、Tab键或是遇非法字符(不属于数值的字符),认为该数据结束。
        int a;
    	char b;
    	float c;
    	scanf("%d%c%f",&a,&b,&c);
    	printf("a=%d,b=%c,c=%f",a,b,c);
    	输入:1234a123o.26
    	输出:a=1234,b=a,c=123.000000
    
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值