使用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; }
运行结果
按照正常形式使用空格分隔输入,并不能得到正确的结果。这个时候我们输入时,使用逗号进行分隔。
运行结果
在scanf()函数中,允许将普通字符放在格式字符串中,除空格字符外的普通字符必须与输入的字符严格匹配。如scanf(“%d,%d”,&num,&value);这样的形式,scanf()会将其解释为:输入一个数字,输入逗号,输入一个数字。因此在输入时需要使用逗号进行分隔。
总结
在使用scanf()函数时,注意格式字符串中的普通字符,如果有,注意使用普通字符分隔输入字符。