Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 8

Первый байт в массиве

02.12.2019, 14:43. Показов 1354. Ответов 6

Студворк — интернет-сервис помощи студентам
Програма принимает в качестве аргумента имя файла *.raw, из которого считывает блоки по 512 байт, записывая каждый в (заведомо нечитаемый) *.jpg файл. Почему каждый первый байт каждого файла состоит из нулей? Этих нулей нет в исходном файле! Все "недостающее", такое как проверки, исключено намерено.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    FILE *stdin = fopen(argv[1], "rb");
    char buf[512] = {0};
    char fName[7];
    fread(buf, 512, 1, stdin);
 
    for (int i = 0; i < 50; i++)
    {
        sprintf(fName, "%03i.jpg", i);
        FILE *stdout = fopen(fName, "wb");
        fwrite(&buf, 512, 1, stdout);
        fclose(stdout);
        fread(&buf, 512, 1, stdin);
    }
    fclose(stdin);
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2019, 14:43
Ответы с готовыми решениями:

Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт
Нужно открыть бинарный файл и закодировать следующим образом. Взять 7 байт. Первый бит каждого байта переместить в 8 байт. То есть,...

Определение в массиве из 15 байт количества байт, в которых сброшены 6 и 4 биты
Помогите пожалуйста разработать программу на языке ассемблера, определяющую в массиве из 15 байт количество байт, в которых сброшены 6 и 4...

Как написать на masm под х86 функцию поиска кол-ва вхождений последовательности байт в большом массиве байт?
Привет! В общем читаю я файл (большой) и хочу найти кол-во вхождений в этот файл некоторой последовательности байт, допустим &quot;AC DF...

6
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
02.12.2019, 16:55
Лучший ответ Сообщение было отмечено samuro2ua как решение

Решение

Попробуйте увеличить размер fName. Скорее всего при записи fName записывается нулевой символ завершения строки в буфер buf, который в памяти находится непосредственно за ним.
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
02.12.2019, 17:32
Ну да. Имя файла содержит как минимум 8 символов. Значит надо char fName[9]; как минимум. А лучше с запасом...

Добавлено через 2 минуты
Ошибся в подсчете. 7 символов. Надо char fName[8];
1
0 / 0 / 0
Регистрация: 12.10.2014
Сообщений: 8
02.12.2019, 17:58  [ТС]
Благодарю. Вы правы.
0
02.12.2019, 20:47

Не по теме:

samuro2ua, palva, Сами понимаете, мимо такого поста я пройти никак не мог:D

0
03.12.2019, 04:20

Не по теме:

Байт, Да. Первый парень на деревне как первый байт в массиве.

0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13202 / 6837 / 1822
Регистрация: 18.10.2014
Сообщений: 17,297
03.12.2019, 04:43
Цитата Сообщение от samuro2ua Посмотреть сообщение
Почему каждый первый байт каждого файла состоит из нулей?
Одна из самых заезженных ошибок из CS50. Стоит только сделать поиск в инете по "%03i.jpg"...

Цитата Сообщение от palva Посмотреть сообщение
Попробуйте увеличить размер fName.
Ответы, начинающиеся со слова "попробуйте"...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2019, 04:43
Помогаю со студенческими работами здесь

Поменять местами в массиве А(8,8) первый отрицательный и первый положительный элементы
1) Поменять местами в массиве А(8,8) первый отрицательный и первый положительный элементы.

QtSerialPort передает только первый байт?
Пишу на qt4.8, собрал под него библиотеку QtSerialPort, пишу такой код QByteArray message; message.resize(7); message =...

Поменять местами первый и последний байт
Есть бинарный файл с записанной в него информацией. Необходимо поменять местами первый и последний байт в этом файле. Как это можно...

Запись в первый байт массива число
Допустим у нас есть такой массив char str; И нужно в первый байт записать сколько элементов в нем находится. Как это сделать? Хотя б с чего...

STM32F0 I2C SPL, первый байт...
Подскажите, почему, при указании строки: I2C_TransferHomdling(I2C1, 0x55, 0, I2C_AutoEnd_Mode, I2C_Kimerate_Start_Write); получаем выдачу...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru