Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Расшифровка анаграмм Пишу программу, расшифрующую анаграммы для примера взял несколько слов, но программа выводит лишние слова, которые по идее не должны подходить. Например при вводе мной слова "abaci" она так же выводит слова "abaka" и "abada", которые по идее должны отличатся колличеством своих совпадений. Код программы : #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> char ar... https://www.cyberforum.ru/ c-beginners/ thread1772020.html в бинарном числовом файле выполнить перестановку местами 1 и 2,3 и 4 C (СИ)
в бинарном числовом файле выполнить перестановку местами 1 и 2,3 и 4 и т.д Помогите пожалуйста, очень срочно сижу на экзамене.
C (СИ) Чтение всего файла, а не только до первого переноса https://www.cyberforum.ru/ c-beginners/ thread1771779.html
Недавно научился делать простые сайты, и уже принялся учить других как это делать. Решил автоматизировать процесс и сделать программу которая заменяет символы типа "<" на "&lt" для вывода кода на странице. Изучаю чтение файлов на СИ. Задача легкая но трудность - функция читает файл только до первого переноса, остальное содержимое игноррирует. Как мне прочитать весь файл а не только до первого...
C (СИ) Найти максимальный элемент над главной диагональю https://www.cyberforum.ru/ c-beginners/ thread1771717.html
В данной действительной квадратной матрице порядка N*N. Найти максимальный элемент над главной диагональю.
C (СИ) Найти сумму отрицательных элементов над побочной диагональю
В данной действительной квадратной матрице порядка N*N. Найти : сумму отрицательных элементов над побочной диагональю.
C (СИ) Найти сумму положительных элементов под главной диагональю https://www.cyberforum.ru/ c-beginners/ thread1771715.html
В данной действительной квадратной матрице порядка N*N. Найти : сумму положительных элементов под главной диагональю.
C (СИ) Найти сумму элементов на обоих диагоналях В данной действительной квадратной матрице порядка N*N. Найти : сумму элементов на обоих диагоналях . https://www.cyberforum.ru/ c-beginners/ thread1771714.html C (СИ) Найти сумму положительных элементов на главной, побочной диагонали
В данной действительной квадратной матрице порядка N*N.Найти : сумму положительных элементов на главной,побочной диагонали.
C (СИ) Найти столбцы, элементы которых упорядочены по убыванию https://www.cyberforum.ru/ c-beginners/ thread1771711.html
В данной действительной квадратной матрице порядка N*N.Найти : столбцы, элементы которых упорядочены по убыванию.
C (СИ) Создать окошко, закрасить его, и цветным шрифтом вывести в нём сообщение Не понимаю как использовать window(x1, y1, x2, y2) и функции для закраски тескста и фона. Дайте какойнибудь простой пример пожалуйста. Добавлено через 15 минут #include <stdlib.h> #include <conio.h> main() { clrscr; window(5, 10, 20, 30); textbackground(white); ckrscr; https://www.cyberforum.ru/ c-beginners/ thread1771652.html
Дан текстовый файл F. Записать в перевернутом виде строки файла F в файл Q. Порядок строк должен быть обратным C (СИ)
Дан текстовый файл F. Записать в перевернутом виде строки файла F в файл Q . Порядок строк должен быть обратным по отношению к порядку строк исходного файла.
C (СИ) Дан текстовый файл F. Записать в перевернутом виде строки файла F в файл Q Дан текстовый файл F. Записать в перевернутом виде строки файла F в файл Q . Порядок строк должен совпадать с порядком строк в файле Q . https://www.cyberforum.ru/ c-beginners/ thread1771604.html
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
28.06.2016, 10:39 0

Расчет контрольных сумм у файла - С/Си - C (СИ) - Ответ 9321259

28.06.2016, 10:39. Показов 3608. Ответов 4
Метки (Все метки)

Ответ

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
 
enum
{
  no_error,
  error_file_open_fail,
  error_mem_alloc,
  error_file_read_error
};
 
struct TFileData
{
  uint32_t crc;
  uint32_t headerCrc;
  uint32_t remainderCrc;
};
 
uint32_t Crc32(const char* const buffer, const size_t bufferLength)
{
  uint32_t crc = 0;
  uint32_t remainder = 0;
 
  uint8_t octet = 0;
  
  static uint32_t lookupTable[256];
 
  static int isTableConstructed = 0;
 
  int i = 0;
  int j = 0;
 
  const char* bufferIterator = NULL;
  const char* bufferEndAddress = NULL;
 
  if (!isTableConstructed)
  {
    for (i = 0; i < 256; i++)
    {
      remainder = i;
      for (j = 0; j < 8; j++)
      {
        remainder = remainder >> 1;
 
        if (remainder & 1)
        {
          remainder = remainder ^ 0xEDB88320;
        }
      }
      lookupTable[i] = remainder;
    }
    isTableConstructed = 1;
  }
 
  crc = ~crc;
 
  bufferEndAddress = buffer + bufferLength;
  for (bufferIterator = buffer; bufferIterator < bufferEndAddress; bufferIterator++)
  {
    octet = *bufferIterator;
    crc = (crc >> 8) ^ lookupTable[(crc & 0xFF) ^ octet];
  }
 
  return ~crc;
}
 
int GetFileSize(const char* const fileName, size_t* const fileSizePtr)
{
  size_t fileSize = 0;
 
  FILE* f = fopen(fileName, "rb");
 
  if (f == NULL) return error_file_open_fail;
 
  fseek(f, 0, SEEK_END);
  fileSize = (size_t)ftell(f);
 
  fclose(f);
  *fileSizePtr = fileSize;
 
  return no_error;
}
 
int LoadFileToBuffer(const char* const fileName, char* const buffer, const size_t bufferLength)
{
  size_t bytesRead = 0;
 
  FILE* f = fopen(fileName, "rb");
 
  if (f == NULL) return error_file_open_fail;
 
  bytesRead = fread(buffer, 1, bufferLength, f);
  fclose(f);
 
  if (bytesRead != bufferLength) return error_file_read_error;
 
  return no_error;
}
 
void FillCrcData(const char* const buffer, const size_t bufferLength, struct TFileData* const crcDataPtr)
{
  crcDataPtr->crc           = Crc32(buffer, bufferLength);
  crcDataPtr->headerCrc     = Crc32(buffer, 48);
  crcDataPtr->remainderCrc  = Crc32(buffer + 48, bufferLength - 48);
}
 
void DisplayCrcData(struct TFileData* const crcDataPtr)
{
  printf("CRC data:\n"
    "total file CRC : %lX\n"
    "header CRC     : %lX\n"
    "remainder CRC  : %lX\n",
    crcDataPtr->crc,
    crcDataPtr->headerCrc,
    crcDataPtr->remainderCrc);
}
 
int ProcessFile(const char* const fileName, struct TFileData* const crcDataPtr)
{
  int errorCode = no_error;
 
  size_t fileSize = 0;
 
  char* buffer = NULL;
 
  errorCode = GetFileSize(fileName, &fileSize);
 
  if ((errorCode == no_error) && (fileSize > 0))
  {
    buffer = malloc(fileSize);
 
    if (buffer != NULL)
    {
      errorCode = LoadFileToBuffer(fileName, buffer, fileSize);
 
      if (errorCode == no_error) FillCrcData(buffer, fileSize, crcDataPtr);
    }
    else errorCode = error_mem_alloc;
  }
 
  return errorCode;
}
 
int main(void)
{
  struct TFileData fileData;
 
  ProcessFile("input.txt", &fileData);
 
  DisplayCrcData(&fileData);
 
  return 0;
}
П 4 совсем не понял, поясните, что требуется.

Вернуться к обсуждению:
Расчет контрольных сумм у файла - С/Си C (СИ)
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2016, 10:39
Готовые ответы и решения:

Расчет контрольных сумм
Нужно написать программу расчитывающей контрольные суммы загружаемых в нее файлов. Подскажите...

Расчет контрольных сумм для ГИС ЖКХ
Добрый день уважаемые пользователи, помогите решить задачу: После генерации строки номера ЕЛС со...

Калькулятор контрольных сумм
нужно окно в которое я ввожу данные, стартовое слово, жму кнопку и мне выводится контрольная сумма...

Определение контрольных сумм ПО
Подскажите как сравнить контрольные суммы ПО? Сравнивать можно только контрольные суммы одиночных...

4
28.06.2016, 10:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2016, 10:39
Помогаю со студенческими работами здесь

Не совпадение контрольных сумм!
Не нашел подходящего раздела, или слепой.. Вообщем скачал чистый дистрибутив Windows 7 SP 1 x64...

Теоретическое обоснование контрольных сумм
Подскажите, пожалуйста, книги, где приводится теоретическое обоснование контрольных сумм

Подходит ли Murmur для вычисления контрольных сумм?
Ищу алгоритм для вычисления контрольных сумм, раньше никогда не сталкивался с этой темой. В...

Множественные ошибки контрольных сумм файлов и запуска служб
Компьютер - на i5 3470 или подобном, диск механический 500ГБ, работал нормально с лицензией пару...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru