Какое условие нужно поставить в цикле чтения из бинарного файла? - C (СИ)
Формулировка задачи:
Наверное, сильно туплю.
Я хочу вывести содержимое бинарного файла по одной записи.
вот мой цикл:
while (fread(¤t_company, size_of_company, 1, inp1)!=feof(inp1))
{
printf("%-20s %10d %20.3f\n",current_company.name, current_company.year, current_company.capital);
i++;
fseek(inp, i*size_of_company,SEEK_SET);
}Решение задачи: «Какое условие нужно поставить в цикле чтения из бинарного файла?»
textual
Листинг программы
while (fread(¤t_company, size_of_company, 1, inp1))
{
printf("%-20s %10d %20.3f\n",current_company.name, current_company.year, current_company.capital);
i++;
}
Объяснение кода листинга программы
- В данном коде используется язык программирования C.
- Задача заключается в чтении данных из бинарного файла и их выводе на экран.
- Переменная
current_companyявляется структурой, которая содержит поляname,yearиcapital. - Условие в цикле while проверяет, успешно ли было выполнено чтение из файла
inp1в переменнуюcurrent_company. - Если чтение было успешным, то выполняется блок кода внутри цикла.
- Внутри цикла происходит вывод на экран значений полей структуры
current_companyс помощью функции printf. - Переменная
iиспользуется для подсчета количества прочитанных компаний. - Значения полей структуры
current_companyвыводятся с использованием формата%-20s %10d %20.3f\n, где%-20s- выравнивание строки по левому краю,%10d- выравнивание числа по правому краю,%20.3f- вывод числа с плавающей точкой с точностью до трех знаков после запятой. - Чтение из файла и вывод на экран выполняются до тех пор, пока не будет выполнено условие окончания цикла.
- В конце цикла значение переменной
iувеличивается на единицу.