How to find the current line position of a text file pointer in C

1 Answer

0 votes
#include <stdio.h>

int main() {
    FILE* fp = NULL;
    char filename[32] = "d:\\data.txt";

    fopen_s(&fp, filename, "r");
    if (fp == NULL) {
        fprintf(stderr, "fopen() error\n");
        return -1;
    }

    int line = 1; // 1 = line number
    int ch;

    while ((ch = fgetc(fp)) != EOF) {
        if (ch == '\n') {
            printf("Line: %d\n", line);
            line++;
        }
    }

    fclose(fp);
}



/*
run:

Line: 1
Line: 2
Line: 3
Line: 4
Line: 5
Line: 6

*/

 



answered Jan 19, 2025 by avibootz
...