设为首页 加入收藏

TOP

scanf函数使用和实现详解(一)
2014-03-10 12:59:17 来源: 作者: 【 】 浏览:289
Tags:scanf 函数 使用 实现 详解

    在我刚开始学c语言的时候,最开始学习的便是输出输入函数,也就是printf和scanf函数,最练习编码的过程中,常常会在使用scanf函数时出现错误,或者常常希望使用scanf函数能够较方便的实现想要的输入流程时,却会遇到意料不到的错误。现在就来总结一下这个常用函数的使用和实现。
    函数原型
    int scanf(char *format[,argument,…]);
    字符串format为格式字符串,[,argument···]为变量列表。
    包含头文件stdio.h可调用此函数
    函数功能
    通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。返回成功赋值的数据项数,出错时则返回EOF.
    使用说明
    控制串由三类字符构成:
    1. 格式化说明符;
    2. 空白符;
    3. 非空白符;
    格式化说明符
    格式字符          说明
    %a                读入一个浮点值(仅C99有效)
    %A                同上
    %c                读入一个字符
    %d                读入十进制整数
    %i                 读入十进制,八进制,十六进制整数
    %o                读入八进制整数
    %x                读入十六进制整数
    %X                同上
    %c                读入一个字符
    %s                读入一个字符串
    %f                读入一个浮点数
    %F                同上
    %e                同上
    %E                同上
    %g                同上
    %G                同上
    %p                读入一个指针
    %u                读入一个无符号十进制整数
    %n                至此已读入值的等价字符数
    %[]               扫描字符集合
    %%                读%符号
    附加格式说明字符表
    修饰符                      说明
    L/l 长度修饰符              输入"长"数据
    h 长度修饰符                输入"短"数据
    W 整型常数                  指定输入数据所占宽度
    * 星号                      空读一个数据
    hh,ll同上h,l但仅对C99有效。
    空白字符
    空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。
    非空白字符
    一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
    案列
    阅读了上面的概述之后,应该能对scanf这个函数的使用有一定的了解,为了建立更加直观的认识,下面结合例子说明他的使用方法
    例子1
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d,%d,%d\n",a,b,c);
    system("pause");
    return 0;
    }
    输入:3空格4空格5回车
    输出:3,4,5回车
    要点:
    (1) &a、&b、&c中的&是地址运算符,分别获得这三个变量的内存地址。scanf中的变量必须为地址,如果变量为数组,则可以用数组名,因为数组名本身的数组的首地址
    (2) "%d%d%d"是按十进值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab键、回车键分隔。

     

首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇OpenGL库编译相关错误 下一篇A+B输入输出练习系列题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: