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

Работа с большими файлами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ одномерный массив. строками пользоваться нельзя http://www.cyberforum.ru/cpp-beginners/thread866064.html
выяснить какие из элементов символьного массива В из n элементов входят в него только один раз. помогите пожалуйста
C++ Создание файла Подскажите пожалуйста, как в данной ситуации можно/нужно создать корректно файл. В книге написано про ошибку, якобы 4й бит сигнализирует нам что файла нету. А как исправить ситуацию - не написано.... http://www.cyberforum.ru/cpp-beginners/thread866062.html
C++ ГОСТ 28147-89 режим простой замены
Добрый день, уважаемые формучане. Решил написать программу, которая реализует ГОСТ в режиме простой замены. Вот код: // 212.cpp: определяет точку входа для консольного приложения. // #include...
Двумерный массив в одномерный C++
Задача: двумерный массив N*N преобразовать в одномерный N2. По особому алгоритму( приложения) Собственно код написал(пишу для c++ borland) #include <iostream.h> #include <conio.h> #include...
C++ В каждом слове заменить первую букву на прописную http://www.cyberforum.ru/cpp-beginners/thread866026.html
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. В каждом слове заменить первую букву на прописную.Использовать тип (класс) string. string task3(string s,string...
C++ Строки: заменить каждый символ '/' на пару символов ':' Подсчитать количество пар '23' и '45' по отдельности и заменить каждый символ '/' на пару символов ': '. С использование библиотеки string.h void task1(char *s, int &kol1, int &kol2) { ... подробнее

Показать сообщение отдельно
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
06.03.2016, 01:03
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    std::string get_full_sum(const std::string& file_path, CHECKSUM_TYPE sum_type, size_t block_size)
    {
        Glib::Checksum sum(convert_to_glibmm_checksub_type(sum_type));
        std::ifstream file(file_path, std::ios::binary);
        if( file.is_open() ){            
            std::string buffer;
            buffer.resize(block_size);
            do{
                file.read(&(buffer[0]), block_size);
                buffer.resize(file.gcount());
                sum.update(buffer);
            }while(buffer.size()>0);
        }
        return sum.get_string();
    }
Проверено на файле в 32 Гб.
Подвох?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru