使用scanf()函数时,我们通常使用的方式是采用空格将格式转换分隔开,如

scanf(“%d %d”,&num,&value);

在进行输入时,两个字符之间采用空格进行分隔,比如

输入23,38,即可获得正确的输入结果。

但如果使用这样一种形式

scanf(“%d,%d”,&num,&value);格式转换符之间使用逗号进行分隔,会发生什么?我们来看看代码示例

#include<stdio.h>
int main(void){
    int num;
    float value;
    printf("请输入num和value:\n");
    scanf("%d,%f",&num,&value);
    printf("num=%d,value=%.2f",num,value);
    return 0;
}

运行结果

c语言scanf用法(C语言scanf函数使用注意事项)(1)

按照正常形式使用空格分隔输入,并不能得到正确的结果。这个时候我们输入时,使用逗号进行分隔。

运行结果

c语言scanf用法(C语言scanf函数使用注意事项)(2)

在scanf()函数中,允许将普通字符放在格式字符串中,除空格字符外的普通字符必须与输入的字符严格匹配。如scanf(“%d,%d”,&num,&value);这样的形式,scanf()会将其解释为:输入一个数字,输入逗号,输入一个数字。因此在输入时需要使用逗号进行分隔。

总结

在使用scanf()函数时,注意格式字符串中的普通字符,如果有,注意使用普通字符分隔输入字符。