如何在C语言中读取文本文件指定行?以第三行为例
修改代码实现读取文件第三行
首先修正原代码的标准问题并调整逻辑,以下是修改后的完整代码:
#include <stdio.h> int main(void) { FILE* textfile; char line[1000]; int line_count = 0; // 打开文件 textfile = fopen("omar.txt", "r"); if (textfile == NULL) { printf("无法打开文件\n"); return 1; } // 跳过前两行,读取第三行 while (fgets(line, 1000, textfile)) { line_count++; if (line_count == 3) { printf("第三行内容:%s", line); break; // 找到第三行后退出循环 } } // 检查是否存在第三行 if (line_count < 3) { printf("文件不足3行\n"); } fclose(textfile); return 0; }
关键修改点:
- 修正
main函数返回类型:标准C要求main必须返回int,原代码的void main不符合规范。 - 添加行计数器
line_count:用来跟踪当前读取的是第几行。 - 调整循环逻辑:每读取一行就计数,当计数到3时,打印该行内容并跳出循环,避免读取多余内容。
- 补充边界处理:如果文件行数不足3行,输出提示信息,避免静默失败。
- 增加头文件
#include <stdio.h>:原代码遗漏标准输入输出库头文件,编译时可能报错。
内容的提问来源于stack exchange,提问作者Omar A. Abdelazim
相关产品推荐
相关产品推荐

