Чтение буферизованного файла C++

Интересно, можно ли чтение большого текстового файла построчно (например, std::getline или fgets) буферизовать с предопределенным размером буфера чтения или нужно использовать специальные побайтовые функции?

Я имею в виду чтение очень больших файлов с оптимизацией количества операций ввода-вывода (например, чтение 32 МБ с жесткого диска за раз). Конечно, я могу создать буферизованное чтение вручную, но я думал, что стандартные файловые потоки имеют такую ​​возможность.


person Igor Shalyminov    schedule 02.11.2011    source источник
comment
написать пользовательскую функцию. Так появляются инновации :)   -  person Kris    schedule 02.11.2011


Ответы (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 содержит содержимое файла.

person Nawaz    schedule 02.11.2011