2024年5月4日发(作者:)

利用scanf函数返回值判断数据输入是否正确

关于scanf函数返回值的理解及用法

()函数有返回值且为int型。scanf返回值表示成功读入的

数据个数。

()函数返回的值为:正确按指定格式输入变量的个数;也

即能正确接收到值的变量个数。

例如,scanf("%d%d", &a, &b); 如下为返回值的四种情况

(1) 如果a和b都被成功读入,那么scanf的返回值就是2

(2) 如果只有a被成功读入,返回值为1

(3)如果a和b都未被成功读入,返回值为0(即scanf函数遇到非

法输入时,返回值为0)

(4)如果遇到错误或遇到文件结束符(end of file,EOF,控制台

下用Ctrl+Z输入)则返回EOF(stdio.h中定义符号常量:#define

EOF -1)。

由此例可见因此可利用scanf函数的返回值判断数据是否正确读

入。

例如,

#include

/*此代码测试scanf函数返回值状态,若不输入正确数据输入

ctrl+z即文件结束符该函数返回值为-1*/

int main(int argc, char *argv[])

{

int x,y,c;

c=scanf("%d %d",&x,&y);

printf("x=%d y=%d",x,y);

printf("nc=%dn",c);

}