Считывание и запись бинарного файла - 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);
Объяснение кода листинга программы
a- это массив, который сначала полностью считывается из файла с помощью функцииfread().lenfile- это переменная, которая содержит размер файла.f- это файловый дескриптор, открытый для чтения.- ... - здесь могут быть другие действия или операции, но их код не представлен в вопросе.
f2- это файловый дескриптор, открытый для записи.i- это индекс, который используется для обращения к конкретному элементу массиваa.fwrite()- это функция, которая записывает данные из массива в файл.- В данном случае,
fwrite()записываетi-й элемент массиваaв файлf2. 1- это параметр функцииfwrite(), который указывает на то, что функция записывает один элемент за раз.- В данном случае,
fwrite()записывает только один байт данных (размер одного элемента массиваa).