Reading long int using scanf

前端 未结 5 2201
栀梦
栀梦 2021-02-13 00:51

To read an int using scanf we use:

scanf(\"%d\", &i);

What if i is a long not int??

5条回答
  •  礼貌的吻别
    2021-02-13 01:33

    Each conversion specifier expects its corresponding argument to be of a specific type; if the argument's type does not match the expected type, then the behavior is undefined. If you want to read into a long with scanf(), you need to use the %ld conversion specifier:

    long i;
    scanf("%ld", &i);
    

    Check the online draft C standard (.pdf file), section 7.19.6.2, paragraph 11 for a complete listing of size modifiers and expected types.

提交回复
热议问题