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

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

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

файл считывается, записывается в массив. Затем создается новый файл, в него записываются данные из массива. Содержимое исходного файла: допустим 1111111 В новом файле: 1111111HHHHHHHHHHHHHHHHHHHHH Подскажите пожалуйста - где ошибка кроется?
// file_file_2.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <io.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    long lenfile;
    int *a;
    int i;
    FILE *f, *f2;
    f = fopen("E:\\for_send.txt","rb");
    lenfile= filelength(fileno(f));//размер файла в байтах
    a=new int[lenfile];
    fread(a,sizeof(int),lenfile,f);
    fclose(f);
 
    f2 = fopen("E:\\newinfo.txt","ab");
    for (i=0;i<lenfile;i++)
        fwrite(&a[i],sizeof(int),1,f2);
    fclose(f2);
    getch();
    return 0;
}

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

textual
Листинг программы
fread(a,1,lenfile,f);
...
fwrite(&a[i],1,1,f2);

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

  1. a - это массив, который сначала полностью считывается из файла с помощью функции fread().
  2. lenfile - это переменная, которая содержит размер файла.
  3. f - это файловый дескриптор, открытый для чтения.
  4. ... - здесь могут быть другие действия или операции, но их код не представлен в вопросе.
  5. f2 - это файловый дескриптор, открытый для записи.
  6. i - это индекс, который используется для обращения к конкретному элементу массива a.
  7. fwrite() - это функция, которая записывает данные из массива в файл.
  8. В данном случае, fwrite() записывает i-й элемент массива a в файл f2.
  9. 1 - это параметр функции fwrite(), который указывает на то, что функция записывает один элемент за раз.
  10. В данном случае, fwrite() записывает только один байт данных (размер одного элемента массива a).

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


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

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

9   голосов , оценка 4.111 из 5
Похожие ответы