C语言中scanf函数返回值妙用:摆脱繁琐判断
摆脱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,循环结束。
代码解读
- 循环条件简化:
while (scanf('%d', &num))直接利用scanf返回值判断输入是否成功,避免了== 1的比较操作,使代码更加简洁。 - 负数判断: 代码中添加了对输入负整数的处理,当用户输入负整数时,使用
break语句跳出循环,确保程序逻辑的正确性。
通过这种方式,我们可以更加高效、优雅地处理C语言中的输入判断问题,提升代码质量。
原文地址: http://www.cveoy.top/t/topic/S7r 著作权归作者所有。请勿转载和采集!