if(scanf("%d",&n)!=EOF) 与if(scanf("%d",&n)) 和if(scanf("%d",&n)==1) 有什么差别

2025-12-06 08:26:07
推荐回答(2个)
回答1:

scanf()函数返回成功读入变量的个数,如scanf("%d%d",&a,&b),如果响应以3 5时,则返回2,如果以5 Ctrl + Z,则返回1,特殊情况是,如果以Ctrl + Z响应,则返回EOF(-1),由此可知,

if(scanf("%d",&n)!=EOF)  // 表示读入了Ctrl + Z
if(scanf("%d",&n)) // 多种含义,无使用价值
if(scanf("%d",&n)==1)  // 成功读入了n的值

回答2:

if(scanf("%d",&n)!=EOF) (EOF=-1)
if(scanf("%d",&n)) //只要scanf("%d",&n)不等于0为真;
if(scanf("%d",&n)==1) //
int  scanf(_In_z_ _Scanf_format_string_ const char * _Format, ...);
scanf()返回值有3种