Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Мы все БОЛЬШАЯ программа
52 / 52 / 5
Регистрация: 16.04.2009
Сообщений: 489
1

Считывание с двоичного файла

13.10.2011, 00:13. Показов 577. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток. Записал с помощью программы (своей) в один файл два изображения, с помощью второй программы пытаюсь их вытащить. Но первую вроде бы вытаскивает, а вот вторую даже и не пытается. В чем дело?
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
int main() {
    FILE *fp;
    int i,b,f;
    char buff[1024*16];
    char buffer2[6];
    char temp[5];
    int count=0;
    int size=0;
    int nums=0;
    int sumsize=0;
    if((fp=fopen("some2.cont","r"))==NULL) {
    puts("Sorry, I can't find this file.");
    exit(1);
    }
    fseek(fp,0,SEEK_END);
    size=ftell(fp);
    fseek(fp,0,SEEK_SET);
    size=0;
    fgets(buffer2,5,fp);
    for(int i=0; i<5; i++)
    if(isdigit(buffer2[i]))
    {
        size=i;
        temp[i]=buffer2[i];
    }
    else
    break;
    sumsize=size+2;
    nums=atoi(temp);
    for(int i=0; i<5; i++)
    temp[i]='\0';
    for(int i=0; i<nums; i++) {
        count=0;
        size=0;
        for(int j=0; j<5; j++)
    temp[j]='\0';
    fseek(fp,sumsize,SEEK_SET);
       fgets(buffer2,6,fp);
      for(int j=0; j<6; j++)
    if(isdigit(buffer2[j]))
    {
        size=j;
        temp[j]=buffer2[j];
    }
    else
    break;
    sumsize+=size-1;
    fseek(fp,sumsize,SEEK_SET);
    count=atoi(temp);
    sumsize+=count;
        FILE *fp2;
        char filename[5];
        sprintf(filename,"%d.bmp",i);
    fp2=fopen(filename,"w");
    int towrite=0;
    int sizebuff=count;
    while(sizebuff>0) {
        towrite=1024*16;
        if(towrite>sizebuff) towrite=sizebuff;
        fread(buff,towrite,1,fp);
        fwrite(buff,towrite,1,fp2);
        sizebuff-=towrite;
    }
    fclose(fp2);
    }
    fclose(fp);
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2011, 00:13
Ответы с готовыми решениями:

Считывание из двоичного файла
Ребята, помогите пожалуйста! Из двоичного файла нужно считать числа, отвечающие определённым...

Считывание с двоичного файла
Впервые работаю с двоичными файлами. Почему программка &quot;падает&quot; при считывании?#include &lt;iostream&gt;...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt;...

В начало двоичного файла целого типа дописать нечетные элементы этого файла.
Вот прога для записи четных файлов...в конец Мне нужно в начало....нечетные...помогите разобраться...

1
4856 / 3277 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
13.10.2011, 09:54 2
ftell() не подходит для вычисления размера файла
для текстовых потоков она просто возвращает число, пригодное для fseek() с SEEK_SET
для двоичных потоков нельзя вызывать fseek() с SEEK_END, поэтому ftell() вызывать не для чего

Цитата Сообщение от bond95
C++
1
2
3
4
    fseek(fp,0,SEEK_END);
    size=ftell(fp);
    fseek(fp,0,SEEK_SET);
    size=0;
так что вот этот кусок для определения размера не имеет смысла
даже если его записать без ошибок

Цитата Сообщение от bond95
Записал с помощью программы (своей) в один файл два изображения
теперь надо открывать файл в режиме "rb" и читать через fread()
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2011, 09:54

Заменить считывание с клавиатуры на считывание из файла
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не понимаю как и что...

Чтение двоичного файла
Есть файл, без типа,просто файл. Содержит набор чисел (размером по 4 б - int ) нужно его прочитать....

Использование двоичного файла
Подскажите, пожалуйста, что такое двоичные файлы, и с чем их едят?) и как с помощью их можно...

Чтение из двоичного файла
Помогите пожалуйста. Проблема такая: В двоичном файле дан массив. нужно прочитать его и...

Раскодировка двоичного файла
Всем доброго времени суток. В общем у меня есть двоичный файл который содержит в себе сжатую...

Запись двоичного файла
Ребята, проясните, пожалуйста, ситуацию с двоичным выводом в файл. Конкретно двоичный, а не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.