摆脱scanf('%d', &num) == 1,C语言输入判断新思路

你是否还在使用 scanf('%d', &num) == 1 来判断输入是否成功?其实,C语言的 scanf 函数返回值本身就能提供输入是否成功的信息,无需再进行繁琐的判断。

直接使用 scanf 返回值

以下是优化后的示例代码,展示了如何利用 scanf 返回值简化输入判断:

#include <stdio.h>

int main() {
    int max = -1; // 初始化最高分为-1,确保可以正确处理输入的第一个非负整数
    
    int num;
    while (scanf('%d', &num)) { // 直接使用scanf返回值判断
        if (num < 0) {
            break; // 输入负整数,结束循环
        }
        
        if (num > max) {
            max = num;
        }
    }
    
    printf('%d\n', max);
    
    return 0;
}

在这个优化后的代码中,我们直接利用 scanf 函数的返回值进行判断。当 scanf 成功读取到整数时,返回值为1,循环继续执行。如果 scanf 无法读取到整数(例如输入了字母或其他非数字字符),返回值为 0,循环结束。

代码解读

  1. 循环条件简化: while (scanf('%d', &num)) 直接利用 scanf 返回值判断输入是否成功,避免了 == 1 的比较操作,使代码更加简洁。
  2. 负数判断: 代码中添加了对输入负整数的处理,当用户输入负整数时,使用 break 语句跳出循环,确保程序逻辑的正确性。

通过这种方式,我们可以更加高效、优雅地处理C语言中的输入判断问题,提升代码质量。

C语言中scanf函数返回值妙用:摆脱繁琐判断

原文地址: http://www.cveoy.top/t/topic/S7r 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录