Я думаю, что это возможно, однако вам нужно использовать хеш-таблицу, которая может привести к большему использованию кучи.
В любом случае, во-первых, содержимое текстового файла должно храниться в массиве символов. Затем, во-вторых, содержимое массива char должно быть перемещено в хеш-таблицу.
Каждая строка в текстовом файле отделена новой строкой. В массиве char новая строка (возможно) переводится в '\ n'. Объединять символы в массиве, пока не будет достигнут символ новой строки. Объединенные символы (минус '\ n') сформируют строку в первой строке. Здесь также должен быть счетчик, который должен быть инициализирован в 0 (или 1, что вы предпочитаете). Сохраните текст в хеш-таблицу; Значением будет созданная строка, а ключом будет счетчик. Увеличьте счетчик впоследствии. Повторите этот процесс для оставшейся части массива, пока не будет достигнут конец файла.
Теперь с помощью хеш-таблицы вы можете получить строку в строке 7, не проходя другие строки. Ну, в принципе, каждая строка была прочитана один раз. Но, по крайней мере, вам не нужно проходить каждую строку после того, как они были сохранены в хеш-таблице.
Как и то, что я сказал ранее, это может увеличить использование кучи, особенно если текстовый файл очень большой.
[И, кстати, извините за очень поздний ответ. Это мой первый раз здесь (я имею в виду, я только что зарегистрировался и ответил на этот вопрос): D]