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

Считывание большого файла(~1гиг) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ задача с массивами:) http://www.cyberforum.ru/cpp-beginners/thread604884.html
Умоляю,помогите решить задачу:)пожалуйста,никак не могу сам сделать:(а сроки поджимают:(Дан массив целых чисел в количестве 16 элементов. Найти такие элементы (а также их сумму), которые состоят из двух равных частей и имеют в своем составе цифру 3. Пример: 4343 9131 33 3313 646 3223 1313; результат: 4343+1313=5656.
C++ Где здесь ошибка? Делаю все по видео уроку. У него работает все нормально у меня жалуется #include <allegro.h> #define MAXFILAS 20 // X #define MAXCOLS 31 // y BITMAP *buffer; BITMAP *roca; char mapa ={ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "X XXXXX X", http://www.cyberforum.ru/cpp-beginners/thread604862.html
Переписать через указатели C++
помогите написать эту программу с помощью указателей #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int n=5;
упростить решение диофантового уравнения. То есть есть x=x_0+at и y=y_0+bt, нужно к х и у подобрать такие t, чтобы х и у были минимальны C++
Помогите пожалуйста с задачей, а то не получается доделать(( почти все сделала, а остатки не могу... Вот смотрите, мы задаем какие-то коэффициэнты при х и у: то есть система получается например х=700-4t1 и у=-300+8t2, ну вот надо подобрать такие t1 и t2, чтобы значения х и у стали минимальными и вывести эти минимальные х и у Вот исходная формулировка задания: Задание такое: упростить...
C++ Использование глобальных переменных - моветон ли? http://www.cyberforum.ru/cpp-beginners/thread604811.html
Ребят, очень часто вижу как отцы С++, когда проверяют чей-то код и обнаруживают там глобальные переменные, заявляют, что это не хорошо, что это моветон. Так ли это на самом деле и собственно почему так? :) Спасибо!
C++ Написать программу на c++, демонстрирующие применение механизма одиночного наследования классов Описание базового класса: Линии: координаты начала и конца, конструктор с параметрами, метод вычисления длины линии. Опсание производного класса: Отрезки: конструктор с параметрами, метод вычисления угла между отрезком и осью ОY, метод вывода данных. Задание: Описать классы, объект производного класса; вывести данные объекта; вычислить и вывести длину и угол с осью ОY. подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.06.2012, 21:40     Считывание большого файла(~1гиг)
black_tear, то есть файл всё-таки целиком должен в памяти оказаться? Вот так на С может выглядеть:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
#define APP_NAME  argv[0]
#define FILE_NAME argv[1]
 
int main(int argc, char ** argv){
    FILE * f;
    char * pPos, * pContent;
    long nLength, nReaden;
    
    if ( argc < 2 ) {
        fprintf(stderr, "Usage: %s input_file_name\n", APP_NAME);
        exit(1);
    }
    
    if ( ! ( f = fopen(FILE_NAME, "rb") ) ) {
        fprintf(stderr, "%s: can't open %s for input!", APP_NAME, FILE_NAME);
        exit(1);
    }
    
    if ( fseek(f, 0, SEEK_END) ) {
        perror("fseek");
        if ( fclose(f) )
            perror("fclose");
        exit(1);
    }
    if ( ( nLength = ftell(f) ) < 0 ) {
        perror("ftell");
        if ( fclose(f) )
            perror("fclose");
        exit(1);
    }
    if ( nLength == 0 ) {
        fprintf(stderr, "%s: file %s is empty, try another one.\n", APP_NAME, FILE_NAME);
        if ( fclose(f) )
            perror("fclose");
        exit(1);
    }
    rewind(f);
    
    if ( ! ( pContent = malloc(nLength) ) ) {
        perror("malloc");
        if ( fclose(f) )
            perror("fclose");
        exit(1);
    }
    
    for ( pPos = pContent; ( nReaden = fread(pPos, sizeof(char), BUFSIZ, f) ); pPos += nReaden )
        ;
    
    if ( ferror(f) ){
        fprintf(stderr, "%s: error while reading file!\n", APP_NAME);
        free(pContent);
        if ( fclose(f) )
            perror("fclose");
        exit(1);
    }
    
    if ( fclose(f) ) {
        perror("fclose");
        free(pContent);
        exit(1);
    }
    
    /* do somethink with content */
    for ( pPos = pContent; pPos - pContent < nLength; ++pPos )
        putchar(toupper(*pPos));
    
    free(pContent);
    exit(0);
}
А так, как это на более-менее современном С++ будет, Билдер скорее всего не поймёт...
 
Текущее время: 12:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru