• scanf返回值的问题


    关于scanf的返回值,MSDN里是这样写的:
    Both scanf and wscanf return the number of fields successfully converted
    and assigned; the return value does not include fields that were read but
    not assigned. A return value of 0 indicates that no fields were assigned.
    The return value is EOF for an error or if the end-of-file character or the
    end-of-string character is nocountered in the first attempt to read a character.
    如:
    scanf("%d%d", &a, &b);
    如果a和b都被成功读入,那么scanf的返回值就是2
    如果只有a被成功读入,返回值为1
    如果a和b都未被成功读入,返回值为0
    如果遇到错误或遇到end of file,返回值为EOF。不经意中发现scanf()的返回值问题,自己试验和了解了一下,一些所知与各位分享; 
    void main() 

    int a; 
    int b; 
    int c; 
    printf("请输入三个整数:"); 
    int x=scanf("%d%d%d",&a,&b,&c); 
    printf("%d %d ",a,x); 

    1.scanf()函数有返回值且为int型。 
    2.scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。 
    从上边的例子中可以得到验证,这里用变量x接收scanf()函数的返回值,并输出显示出来。当运行中输入三个整数:5 6 7则x的值为3;如果输入5 6 d(即给c 赋值不正确)则x的值为2;如果输入5 t d(即给b和c 赋值不正确)则x的值为1; 

    其 实scanf()的返回值对我们来说也很有用的,比如我们在使用这个函数进行接收值时,我们很必要知道对要给赋值的变量是否正确的赋值成功了,所以可以使 用if(scanf("%d,%d",&a,&b)==2)这样语句来判断是否正确的给所有的变量赋值了,正确的话才能使用这个变量参与 运算,这样才能提高我们代码的安全性,所以这个返回值也是大有用途的.(转)。
    作 家格拉德威尔在《异数》一书中指出:“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。只要经过1万小时的锤炼,任何人都能 从平凡变成超凡。”他将此称为“一万小时定律”。要成为某个领域的专家,需要10000小时,按比例计算就是:如果每天工作四个小时,一周工作五天,那么 成为一个领域的专家至少需要十年。
  • 相关阅读:
    C++-struct类的新特性当class用
    rbenv、fish 與 VSCode 設置之路
    angularJS进阶阶段(4)
    插入排序
    Vimium
    Design Patterns 25
    Mysql(或者sqlite), Mongo中update Column + 1
    Hexo
    继承
    Gradle的依赖方式——Lombok在Gradle中的正确配置姿势
  • 原文地址:https://www.cnblogs.com/phpxuetang/p/4692604.html
Copyright © 2020-2023  润新知