Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Рассуждения на тему... 28.10.02 19:17 Число просмотров: 1262
Автор: amirul <Serge> Статус: The Elderman
|
> Пусть меня поправят, но по моему построчно читать файлы - > не целесообразно. Гораздо эффективней "проглатить файл > целиком и разбить его на строки в памяти. (последний раз > эксперементировал еще в школе на ДВК ;) , но применяю этот > метод до сих пор)
Вообще-то для современных ОС (типа Windows) это не всегда так. Можно читать хоть побайтно, все равно весь файловый ввод-вывод буферизируется, так что снижение эффективности будет (если будет) не сильно большим. Здесь есть даже возможность снижения эффективности при полном считывании файла в память. Дело в том, что для каждого процесса устанавливаются квоты на количество физических страниц (даже если физической памяти хватает), находящихся в памяти. И если файл достаточно большой, то по мере обращения к более далеким от начала страницам в памяти, более близкие будут вытесняться в своп-файл, после этого по мере чтения этого буфера начальные страницы будут подкачиваться, а конечные - вытесняться. Это будет гораздо медленнее.
2 Dasha: Насколько я понял тебе нужен Цэ++:
#include <fstream>
#include <string>
using namespace std;
struct Word {
string m_English;
string m_Rus;
} word;
void
main() {
ifstream is("test.txt");
while(is) {
is.getline(is, word.m_English);
is.getline(is, word.m_Rus);
do_something(&word);
}
}
---
|
|
|