Считать побайтово файл и записать в другой - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день, хочу считать побайтово файл и записать его в другой. С текстовыми файлами все нормально, но с картинками не работает корректно. В чем может быть проблема? Заранее спасибо. Вот код:
Листинг программы
  1. #include <fstream>
  2. #include <iterator>
  3. #include <vector>
  4. int main()
  5. {
  6. #define MAX_FILE_SIZE 100000
  7. FILE *uk1;
  8. char filename[255] = "200.gif";
  9. unsigned int readdata[MAX_FILE_SIZE];
  10. int file_length = 0;
  11. if ((uk1 = fopen(filename, "rb")) == NULL)
  12. {
  13. printf("Error! Can not read file %s.\n", filename);
  14. exit(1);
  15. }
  16. else
  17. {
  18. // Определяется размер файла
  19. fseek(uk1, 0, SEEK_END);
  20. file_length = ftell(uk1);
  21. printf("File %s lenght is %d\n", filename, file_length);
  22. // Побайтно считыватся данные
  23. fseek(uk1, 0, SEEK_SET);
  24. int i = 0;
  25. while (!feof(uk1) && i<file_length && i<MAX_FILE_SIZE)
  26. readdata[i++] = fgetc(uk1);
  27. readdata[i] = 0;
  28. fclose(uk1);
  29. }
  30. uk1 = fopen("2001.gif", "w+");
  31. for (int i = 0; i <= file_length; i++)
  32. fputc(readdata[i], uk1);
  33. fclose(uk1);
  34. }

Решение задачи: «Считать побайтово файл и записать в другой»

textual
Листинг программы
  1. uk1 = fopen("2001.gif", "wb");

Объяснение кода листинга программы

  1. uk1 - это переменная, которая содержит файловый дескриптор, открытый в режиме записи (wb). Это означает, что файл будет записан в двоичном формате.
  2. 2001.gif - это имя файла, который будет прочитан. В данном случае, это файл изображения GIF.
  3. wb - это параметр, переданный в функцию fopen. Он указывает, что файл должен быть открыт в режиме записи, а данные должны быть прочитаны как двоичные.
  4. В данном коде не указано, что происходит после открытия файла. Однако, предполагается, что код будет читать файл побайтно и записывать его в другой файл.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы