Как я могу получить текущее положение строки указателя файла?
Нет функции для получения текущей строки; вам придется следить за этим самостоятельно. Примерно так:
FILE *file;
int c, line;
file = fopen("myfile.txt", "rt");
line = 0; /* 1 if you want to call the first line number 1 */
while ((c = fgetc(file)) != EOF) {
if (c == '\n')
++line;
/*
... do stuff ...
*/
}
Не существует функции, которая дает текущую строку. Но вы можете использовать функцию ftell для получения смещения в количестве символов от начала файла.
Вам нужно использовать ftell, чтобы определить позицию в файле.
Если вам нужна текущая строка, вам придется подсчитать количество последовательностей терминаторов строк между началом файла и позицией. Лучший способ сделать это - начать с начала файла и просто читать вперед, пока не доберетесь до позиции, подсчитывая последовательности терминаторов строк по ходу дела.
Если вам нужна текущая позиция строки (я полагаю, вы имеете в виду, на каком символе текущей строки вы находитесь), вам придется подсчитать количество символов между последовательностью терминатора строки, непосредственно предшествующей позиции, и самой позицией.
Лучший способ сделать это (поскольку чтение назад не так удобно) - использовать fseek для резервного копирования чанка за раз от позиции, прочитать чанк в буфер, затем найти последнюю последовательность терминатора строки в чанке, вычислив разницу между этой точкой и позицией.