Считывание и запись бинарного файла - 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
).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д