#c #ifstream #bigdata
#c #ifstream #bigdata
Вопрос:
Интересно, можно ли буферизировать чтение большого текстового файла построчно (например, std:: getline или fgets) с предопределенным размером буфера чтения или нужно использовать специальные функции bytewise?
Я имею в виду чтение очень больших файлов с оптимизацией количества операций ввода-вывода (например, одновременное чтение 32 МБ с жесткого диска). Конечно, я могу обрабатывать буферизованное чтение вручную, но я думал, что стандартные файловые потоки имеют такую возможность.
Комментарии:
1. напишите пользовательскую функцию. Вот как появляются инновации 🙂
Ответ №1:
Ни построчных, ни специальных байтовых функций. Вместо этого ваше задание должно выполняться следующим образом:
std::ifstream file("input.txt");
std::istream_iterator<char> begin(file), end;
std::vector<char> buffer(begin, end); //reading the file is done here!
//use buffer. it contains the content of the file!
И все готово, поскольку buffer
содержит содержимое файла.