Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
 Аватар для Карандаша
2 / 2 / 0
Регистрация: 23.10.2011
Сообщений: 73

Как узнать размер файла

30.12.2013, 05:43. Показов 3149. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вобщем программа -кодировщик методом Хаффмана, взята из интернета.
Нужно добавить к ней вывод размера входного файла и сжатого..
Перерыла весь гугл, испробывала все методы, никак не могу вывести размер файлов...
Вот часть кода, где должен вычисляться размер . По логике он уже вычисляется. Но не выводит на экран. Пробывала раааазличными способами.....

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
void Encoder::Work(char *in_name,char *out_name)
{
    int n; byte=0; byte_shift=1; write_count=0;
    long int fsize;
    long ExecTime;
    ExecTime=clock();
    input=fopen(in_name,"rb"); if(!input) {printf("in file not found\n");return;}
    fseek(input,0,SEEK_END);
    file_size=ftell(input); 
    if(!file_size) {printf("input file is empty\n");return;}
    output=fopen(out_name,"wb"); if(!output) {printf("out file io error\n");return;}
    fseek(input,0,SEEK_SET); fwrite(&file_size,1,sizeof(file_size),output);
    for(n=0; n<512; n++) tree[n].count=0,tree[n].p=tree[n].p1=tree[n].p2=-1;
    printf("[calc symbols]\n");
    for(n=0; n<file_size; n++) tree[(BYTE)getc(input)].count++;
    tree_root=MakeTree();   // создали дерево
    SetBits(tree_root,-1);  // расставили биты
    WriteAll();             // записали дерево в файл
    Dump();                 // вывели статистику в лог
    rewind(input);
    Compress();             // сжатие
    if(byte_shift!=1) fputc(byte,output);   // запись остатка битов
    fclose(input);
    fclose(output);
    ExecTime=clock()-ExecTime;
    printf("Execution time coding %ims\n",ExecTime);
    printf("Razmer\n",file_size);
    
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2013, 05:43
Ответы с готовыми решениями:

Узнать размер bmp файла в миллиметрах
Код рабочий, но высота маленькая получается порядка 1 мм, где ошибка у меня? int W =...

Как узнать размер используемой памяти процесса?
Собственно, сабж. Возвращаемый размер должен совпадать с тем, что показывает диспетчер задач. Функция GetProcessMemoryInfo для этого не...

ListView, как отобразить имя файла и размер файла?
Подскажите, как в ListView отобразить имя файла и размер файла. используя DirectoryListBox1 ????????? Т.е. поле - имя файла и поле размер...

5
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
30.12.2013, 14:52
filelength(int hangle)
hangle = fileno(FILE *f)

Добавлено через 2 минуты
Вот тут
http://www.rsdn.ru/forum/cpp.applied/2746450.all
описаны и другие способы
0
 Аватар для Карандаша
2 / 2 / 0
Регистрация: 23.10.2011
Сообщений: 73
30.12.2013, 14:55  [ТС]
Большое спасибо)
Разобралась сама Х)
Подключением структуры проблема решилась)
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
30.12.2013, 14:56
Все понятно. Вот ошибка (строка 27)
C++
1
printf("Razmer\n",file_size);
Формат вставить то нужно
C++
1
printf("Razmer %ld\n",file_size);
0
 Аватар для Карандаша
2 / 2 / 0
Регистрация: 23.10.2011
Сообщений: 73
30.12.2013, 15:09  [ТС]
Кстати да. Все мои способы что пробывала не проходили именно из-за того, что формат не был указан...
Подумать только, потратила два часа на поиск ошибки, и ведь не в одном примере при выводе не было этого формата...
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
30.12.2013, 15:37
Цитата Сообщение от Карандаша Посмотреть сообщение
Кстати да. Все мои способы что пробывала не проходили именно из-за того, что формат не был указан...
Подумать только, потратила два часа на поиск ошибки, и ведь не в одном примере при выводе не было этого формата...
Ну уж такая доля наша, программерская... Тут бывало по суткам тратишь на полную чушь... Правда, потом начинаешь хохотать, как резаный. Так что и в этом есть свой кайф...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.12.2013, 15:37
Помогаю со студенческими работами здесь

Как уменьшить размер файла bmp?
Есть файл bmp размером, например, 1280x960. Нужно уменьшить размер в 4 раза, то есть до 640x480. Как это реализовать программно на языке...

Узнать размер файла если он более 8 гб
GetFileSizeEx работает только с файлами &lt;=8 гб. Как правильно узнать размер файла более 8 гб, и как узнать что он более 8 гб при...

Размер шрифта, как узнать ширину одной буковки (символа)?
Всем здрасьте. При создании шрифта везде только один параметр (int size ..ну или другой тип..), вроде когда его указываешь - это высота...

Как узнать размер открытого файла
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;windows.h&gt; #include &lt;cstdlib&gt; #include &lt;stdio.h&gt; using namespace std; ...

Как узнать текущий размер копируемого файла?
Здраствуйте! Как узнать текущий размер копируемого файла? У HTML-их нашел, а как у других не знаю. Заранее благодарен. GigaBit.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru