C语言如何从txt文件中筛选能被2整除的数字并输出对应提示
实现说明
你当前的代码仅完成了文件逐行读取的基础逻辑,还缺少字符串转整数、整除判断两个核心步骤,同时需要补充文件操作的容错逻辑避免程序异常。
修正后完整代码
#include <stdio.h> #include <stdlib.h> // 用于调用atoi字符串转整数函数 int main(){ FILE* file = fopen("input.txt", "r"); // 容错判断:文件打开失败直接提示退出 if (file == NULL) { printf("无法打开input.txt,请检查文件路径是否正确\n"); return 1; } char load[100]; printf("可被2整除的数字如下:\n"); while (fgets(load, sizeof load, file) != NULL) { // 可选:跳过输入文件里的{、}符号行 if (load[0] == '{' || load[0] == '}') { continue; } // 把读取到的字符串格式数字转为整数 int num = atoi(load); // 取模判断是否能被2整除 if (num % 2 == 0) { printf("%d\n", num); } else { printf("Try different number.\n"); } } // 操作结束关闭文件释放资源 fclose(file); return 0; }
核心修改点
- 补充了文件打开失败的判空逻辑,避免空指针访问导致程序崩溃
- 使用
atoi()函数将读取到的字符串内容转换为可计算的整数类型 - 通过取模运算符
%做整除判断:整数对2取模结果为0即为偶数,符合筛选要求 - 新增了文件关闭逻辑,避免资源泄漏
内容的提问来源于stack exchange,提问作者user17277981
相关产品推荐
相关产品推荐

