Лучший способ отобразить результаты поиска по шаблону в текстовых файлах?

первый вопрос здесь!

Я пишу программу типа grep для Windows, просто для удовольствия (используя Mingw). Это хорошо работает для текстовых файлов, где строки заканчиваются символом '\n'. Я использую для этого fstream::getline().

Но мне также нужно иметь возможность искать файлы, содержащие только гигантский блок текста без номеров строк. fstream::getline() здесь не работает. Есть ли функция для чтения N символов в буфер из такого файла?

Кроме того, как лучше всего сообщить пользователю, где в таком файле было найдено совпадение?


person Quicksilver    schedule 31.08.2009    source источник
comment
Традиционный grep, работающий с файлом, содержащим только одну строку, просто выводит всю строку. Если вы хотите сделать что-то еще, все, что вы можете сделать, это сообщить пользователю, сколько символов в нем было. Проблема в том, что вам нужно принимать произвольные решения о том, когда вы перестанете считать это однострочным файлом, где вы будете выводить всю строку, и начнете рассматривать его как огромный блок.   -  person Cascabel    schedule 31.08.2009
comment
Спасибо, думаю, для неформатированного текста укажу количество символов от начала файла.   -  person Quicksilver    schedule 31.08.2009


Ответы (1)


istream::read() будет считывать произвольное количество символов из istream.

Что касается того, где в файле он был найден, номер строки и смещение символа могут быть хорошим способом.

person luke    schedule 31.08.2009