Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Быстрое чтение файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая вычисляет среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел. http://www.cyberforum.ru/cpp-beginners/thread381660.html
Написать программу, которая вычисляет среднее арифметическое ненулевых элементов введенного с клавиатуры массива целых чисел. Ниже приведен рекомендуемый вид экрана во время работы программы...
C++ Аппаратное программирование клавиатуры. Доброго времени суток всем. Есть определённая задача - сделать сброс клавиатуры не перезагружая компьютер. Нарыл в дебрях интернета статейки - отключить, включить, сбросить и провести эхо-тест... http://www.cyberforum.ru/cpp-beginners/thread381658.html
C++ факториал
найти число нулей в конце факториала числа N по основанию каждого множителя K (1<=N<=1000000000, 2<=K<=1000) #include <iostream> typedef unsigned long long ulong; #include <vector> #include...
Инкремент невалидного итератора C++
Привет. Этот вопрос задали знакомому на собеседовании... Что произойдет при инкременте невалидного итератора?
C++ Dll com-совместимая http://www.cyberforum.ru/cpp-beginners/thread381588.html
Подскажите пожалуйста, как в реализации обычная dll отличается от com-совместимой dll?
C++ Timer начало змейки Есть таймер и есть label1 таймер включен в таймере прописано Label1->Left= Left +1; и в результате Label1 перемещаетья примерно на 5 сантиметров влево и все, больше не двигается в чем... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
11.11.2011, 15:01
Цитата Сообщение от programina Посмотреть сообщение
Здраствуйте. Я пишу программу, которая читает файлы порядка от нескольких килобайтов до максимум 3 Мб. Посоветуйте пожалуйста, какие функции и/или алгоритмы использовать для максимальнобыстрого чтения данных, представленных вещественными числами. Прошу прощения, если мой вопрос неправильно сформулирован.
- файл совсем маханький предлагаю всё его содержимое сразу впихнуть в буффер, а затем уже работать с алгоритмами для строки или чего вы там хотите реализовать!Работа с буффером будет куда более быстрой чем парсинг файлового потока!Да и файл можно без опасения переписать, все данные то в буфере
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
long sLen;
char *s;
FILE * f = fopen("fPath","rb");//да rb - не будет граблей с \r\n
if(f)
{
    fseek(f,0,SEEK_END);//Курсор вконец
    sLen = ftell(f);//Узнаём длинну файла
    fseek(f,0,SEEK_SET);//Курсор вначала
    if(!(str = (char *)malloc(sizeof(char) * (sLen + 1))))
           printf("Allocation memory error\n");
    else
    {
          fread(s,sLen,1,f);
          s[sLen] = '\0';//Завершили строку
    }
    fclose(f);//Закрыли файловый поток
    if(s)
   {
           //работаем с инфойфайла
   }
}
Добавлено через 5 минут
Чтобы перебить строку в вещественные числа strtok-ом парсим токены идущие через пробел
char delim[] = " ";
C
1
2
3
4
5
6
char * tok = strtok(str,delim);
while(tok)
{
    arr[i++] = atof(tok);
    tok = strtok(str,delim);
}
Добавлено через 1 минуту
Ну а на плюсах можно всем что выше написал не заморачиваться и сделать вот так
программа с динамической памятью
тут уже готовый проект считывания ifstream-ом
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru