Как считать из файла сразу 1 массив и вывести его через fread? - C (СИ)
Формулировка задачи:
Помогите пожалуйста, как с помощью fwite записать в файл массив 1 разом?
я этим уже разобрался, но встала новая проблема, как считать из файла сразу 1 массив и вывести его через fread?
вот то что я сделал, но оно работает некорректно
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main()
{
int bal[5];
int i;
FILE *file = fopen("3.txt","r");
if (file == NULL)
printf ("Ошибка при открытии файла");
else {
fread(&bal, sizeof(bal),1, file);
printf ("%d ", bal);
}
fclose(file);
getch();
return 0;
}Решение задачи: «Как считать из файла сразу 1 массив и вывести его через fread?»
textual
Листинг программы
#define ITEM_COUNT (5)
int main(int argc,char** argv)
{
int bal[ITEM_COUNT];
FILE* pFile = fopen("3.bin","rb");
if (!pFile)
{
printf ("Ошибка при открытии файла");
return 0;
}
fread(bal,sizeof(int),ITEM_COUNT,pFile);
printf ("%d\n",bal[0]);
fclose(pFile);
getch();
return 0;
}
Объяснение кода листинга программы
- Объявлен массив баланса
balразмером 5. - Открыт файл
3.binдля чтения (rb). - Проверена корректность открытия файла.
- Произведено чтение файла с помощью функции
fread, где указано: —bal- куда считывать данные. —sizeof(int)- сколько байт считывать (размер одного элемента массива). —ITEM_COUNT- сколько элементов считывать (размер массива). —pFile- файл, из которого считывать данные. - Выведено значение первого элемента массива
bal[0]. - Закрыт файл
pFile. - Программа ожидает нажатия клавиши для завершения работы.
- Возвращено значение 0, что означает успешное завершение работы программы.