题目

编写程序打开并读取一个指定的文本文件,统计该文本文件包含的总行数并在控制台输出。

输入格式:程序默认读取当前目录下的测试文件 test.txt(或从标准输入读入文件名)。

输出格式:输出一个整数表示统计到的文本行数,末尾换行。

数据范围与约定:文件大小不超过 10MB。

思路与算法

1. 文件指针与只读打开
使用 FILE *fp = fopen(filename, "r"); 打开文件,务必检查 fp == null 防御文件不存在或无权限打开。

2. 字符读取与换行符统计
使用 int ch = fgetc(fp); 逐字符读取直到 输入流结束。遇到换行符 '\n' 时计数器加 1。最后必须调用 fclose(fp) 释放文件描述符。

完整程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int lineCount = 0;
        // 循环读取每一行文本直到输入结束
        while (sc.hasNextLine()) {
            sc.nextLine();
            lineCount++;
        }
        System.out.println(lineCount);
    }
}

运行示例

输入:

hello world
java programming
final line

输出:

3