Я в учебнике, который знакомит с файлами (как читать из файла и записывать в файл)
Прежде всего, это не домашнее задание, это просто общая помощь, которую я ищу.
Я знаю, как читать по одному слову за раз, но я не знаю, как читать по одной строке или как читать весь текстовый файл.
Что делать, если мой файл содержит 1000 слов? Читать весь файл слово за словом нецелесообразно.
Мой текстовый файл с именем Read содержит следующее:
I love to play games
I love reading
I have 2 books
Это то, что я сделал до сих пор:
#include <iostream>
#include <fstream>
using namespace std;
int main (){
ifstream inFile;
inFile.open("Read.txt");
inFile >>
Есть ли способ прочитать весь файл сразу, вместо того, чтобы читать каждую строку или каждое слово отдельно?
fread 4 KiB
,fread 128 bytes
,std::getline
,fgetc
,ifstream::get
. Гдеfread
заняло 0,15 секунды, аstd::getline
заняло 6 секунд для текстового файла размером 1 ГиБ. - person vallentin   schedule 01.08.2016fread 4 KiB
. Это работало, имея 2 блока одновременно. Таким образом, если слово (или, лучше сказать, последнее слово) превышало первый блок, оно продолжалось в следующем блоке. Так что да, если бы слово превышало 4 КиБ в длину, я бы не смог его прочитать. Но для меня это было не так, и я хотел ограничить любое копирование и перемещение памяти для сохранения скорости, и это сработало (в моем случае). - person vallentin   schedule 01.08.2016fread
, потому что тогда мы не сможем получить первую часть слова. Таким образом, решение было 2 буфера. Опять же, я пытался НЕ копировать какую-либо память из буферов, что по сравнению с копированием каждого слова показало значительное улучшение скорости для файлов размером более 100 МБ. - person vallentin   schedule 01.08.2016