A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、scanf函数的介绍及使用
scanf函数是阻塞式函数,包含在标准输入输出头文件”stdio.h“中,用于接收键盘输入的内容
格式:scanf("格式控制字符串",输入项地址列表);
        1.格式控制字符串:由格式控制符和普通字符组成,格式控制符和百分号一起使用,用来说明输入数据的数据类型(格式字符)
        2.输入项地址列表
        c语言中,一个变量的地址可以通过地址运算符&得到

        3.常见的格式字符
                d 输入十进制整数
                o 输入八进制整数
                x 输入十六进制整数
                i 输入有符号或者无符号十进制、八进制、十六进制整数
                u 输入无符号十进制整数
                f、e或E、g或G 输入小数形式或指数形式的浮点数
                c 输入字符
                s 输入字符串
                d 输入十进制整数
2、scanf使用注意事项
        1.scanf中不能用%m.nf这种控制格式
                scanf("%3.2f",&a);//报错
        2.scanf中可以用%mf
                scanf("%3f",&a);//输入1233
                printf("%.0f",a);//输出结果位123,指接受了前三位

        3. 如果在输入单个值时,输入了多个空格、回车、Tab都会被系统忽略。例如在输入值23前输入多个空格、Tab、回车时都会被忽略,最终输入23后再回车才结束输入
        4. scanf函数遇到回车的时候,会结束执行
        5. scanf("%d%d",&a,&b);//要求在键盘输入时用空格或者回车、Tab隔开
        6. scanf("%d%d",&a,&b);//如果此时通过键盘输入了23,34
                name打印时printf("%d%d",a,b);结果是23,0(假设b之前的值是0)
                正确的做法scanf("%d,%d",&a,&b);这样就可以输入23,34了
        7.混合输入scanf("%d%c%d",&a,&ch,&b);//如果此时通过键盘输入了23 b 34
        printf("%d%c%d",a,b);结果是23 0(假设b之前的值是0)
        8. * 号的使用:忽略一个输入
                scanf("%d%*d%d",&a,&b);//此时输入项只有两个也不会有警告,输入1 2 3后,printf打印结果是:1 3
        9.scanf中不要使用\n,如果一不小心使用了,可以在输入值后,随意输入内容再按空格键,或者输入值后直接输入\n再按空格键
3、scanf函数运行原理
        当用户输入内容后,用户输入的内容会被放入输入缓存区,然后scanf函数会根据格式控制字符串从输入缓冲区依次读取想要的内容
        1)如果从缓冲区中取到的内容和我们要求的格式一致,则把值存放到变量中,
        2)如果不一致,则不修改变量的值

        3) 如果输入缓存区中还有内容,则scanf不会提示再次输入


1 个回复

倒序浏览
楼主很有心,赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马