Запись структуры в файл - 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