Создать файл содержащий сведения о кубиках - C (СИ)
Формулировка задачи:
1. Создать файл "Кубики", содержащий сведения о кубиках: размер (длина ребра), цвет (из семи цветов радуги), материал (дерево, металл, картон). Найти количество кубиков каждого из возможных цветов и их суммарный объем. 2. Создать файл f, компоненты которого являются целыми числами. Никакая из компонент не равна нулю. Файл f содержит равное число отрицательных и положительных чисел. Число компонентов файла делится на четыре. Используя вспомогательный файл, переписать компоненты файла f в файл g так, чтобы в файле g числа шли в следующем порядке: ++ -- ++ --..., то есть два положительных числа, два отрицательных числа и так далее.
Буду рада даже в помощи с одной задачей. Не могу разобраться с потоками.
Вторую решила.) Но если кто знает, как работать с первой - буду рада.
Решение задачи: «Создать файл содержащий сведения о кубиках»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> // size = тут все и так ясно :) // color = 1 бит = черный, 2 бит -белый, и так далее. // material = 0 = дерево , 1 = металл, 2=картон struct cube { int size; int color[7]; int material[3]; }; int generateCube(int countCube) { FILE *fp; int x = 0; struct cube cub ={ 1, {0,0,0,0,0,0,1}, {0,0,1} }; if (!(fp = fopen("cube.db", "w+"))) { printf("error open file\n"); exit(0); } for(x=0; x<countCube; x++) { cub.size = x; fwrite(&cub, sizeof(cub), 1, fp); } fclose(fp); return 0; } int main(int argc, char *argv[]) { struct cube cub; FILE *fp; int count = 1; generateCube(10); if (!(fp = fopen("cube.db", "r"))) { printf("error open file\n"); exit(0); } while ((fread(&cub, sizeof(cub), 1, fp))!=0) printf("Cube number[%3d]: Size cube: %d\n", count++,cub.size); fclose(fp); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdio.h и stdlib.h.
- Объявляется структура
cube
, которая содержит три поля: размер кубика (целое число), массив цветов (целые числа) и массив материала (целые числа). - Определяется функция generateCube, которая генерирует кубики. Она открывает файл
cube.db
в режиме добавления (w+
), записывает в него кубики и закрывает файл. - Определяется функция main. В ней создается экземпляр структуры
cube
, открывается файлcube.db
в режиме чтения (r
) и выполняется цикл, который читает из файла кубики и выводит их на экран. - Выполняется вызов функции generateCube с аргументом 10, чтобы создать 10 кубиков.
- После выполнения функции generateCube открывается файл
cube.db
в режиме чтения (r
) и выполняется цикл, который читает из файла кубики и выводит их на экран. - Файл
cube.db
закрывается. - Программа возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д