Если у меня есть текстовый файл, как это: б с dкак читать определенную строку из текстового файла C++
Как я могу прочитать п-ю строку без петли подсчета, так что если линия число равно 3 Я могу получить письмо c.
Если у меня есть текстовый файл, как это: б с dкак читать определенную строку из текстового файла C++
Как я могу прочитать п-ю строку без петли подсчета, так что если линия число равно 3 Я могу получить письмо c.
Единственный способ сделать это - знать смещение (в байтах), где начинается третья строка.
Вы можете создать «индекс» для этого файла (один раз пропустите файл и сохраните позицию, где начинается каждая строка). Или, может быть, смещение можно рассчитать/угадать, если вы знаете, что все линии имеют одинаковую длину.
Без этого предварительного знания вы не можете прочитать строку с произвольным числом из файла.
Да, все линии имеют одинаковую длину (около 1,5 мил и более строк), поэтому я считаю, что более эффективно вычислять смещение. Но как я могу рассчитать его, а затем как я могу использовать смещение для чтения строки. – stringlord
Смещение должно быть n * (длина строки, включая символ конца строки). Установите позицию в файле на это смещение, используя 'fseek' или' seek' (в зависимости от того, как вы работаете с файлом), а затем прочитайте. – Inspired
Здесь п начинается 0
string line;
for (streamsize i = 0; i <= n; i++)
{
if (! getline(myfile, line))
{
// some issue occured, probably not enough lines
}
}
// line variable now contains line n
Ваш пример содержит только 1 строку. –