Запись структуры в файл - C (СИ) (77554)
Формулировка задачи:
есть структура функция для записи в файл
функция чтения из файла
функция записывает в файл рандомную информацию
функция печатает структуру
чтение из файла
проблема такая, если запущу генерацию файла даже несколько раз, то поле name не поменяется, уверен что ошибка изза работы с памятью, помогите найти
struct base { int id; char name[10]; }; typedef struct base office;
void writes(FILE* file,office of) { fwrite(&of.id, sizeof(int), 1, file); fwrite(&of.name, sizeof(char)*10, 1, file); }
void reads(FILE* file,office* of) { fread(&(of->id), sizeof(int), 1, file); fread(&(of->name), sizeof(char)*10, 1, file); }
void gen(char* file) { office off; FILE* fl = fopen(file,"wb"); char rb[3][10] = {"qqq","www","eee"}; for(int i = 0;i<10;i++) { off.id = random()%100; strcpy(off.name,rb[random()%3]); writes(fl,off); } fclose(file);
void pOff(office of) { printf("%d %s\n",of.i,of.name); }
FILE* f = fopen("data.sq","rb"); office of2; for(int i=0;i<10;i++) { reads(f,&of2); pOff(of2); }
Решение задачи: «Запись структуры в файл»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { size_t i; srandom((unsigned) time(NULL)); for(i = 0; i < 5; ++i) printf("%d\n", random() % 15); exit(0); }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h, stdlib.h, time.h
- Объявление переменной
i
типа size_t - Инициализация генератора случайных чисел с помощью функции srandom() и аргументом которой является текущее время
- Запуск цикла for от 0 до 5
- Внутри цикла вызов функции printf() для вывода на экран случайного числа от 0 до 14
- Завершение цикла
- Выход из программы с помощью функции exit() и аргументом которой является 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д