C/C++
Программа на C++
Программа записи введённых элементов структуру в файл и его чтение.
Уточните вопрос с учётом справочных данных:
https://ru.wikipedia.org/wiki/Дательный_падеж
https://ru.wikipedia.org/wiki/Родительный_падеж
https://ru.wikipedia.org/wiki/Дательный_падеж
https://ru.wikipedia.org/wiki/Родительный_падеж
#include <stdio.h>
#include <stdlib.h>
struct person
{
char name[25];
int age;
};
int save(char * filename, struct person *p);
int load(char * filename);
int main(void)
{
char * filename = "person.dat";
struct person coder;
printf("\n Enter your name: ");
scanf("%s",&coder.name);
printf("\n Enter your age: ");
scanf("%d",&coder.age);
save(filename, &coder);
printf("\n Loading data from file: \n");
load(filename);
return 0;
}
// запись структуры в файл
int save(char * filename, struct person *p)
{
FILE * fp;
char *c;
int size = sizeof(struct person);
// количество записываемых байтов
if ((fp = fopen(filename, "wb")) == NULL)
{
perror("Error occured while opening file");
return 1;
}
// устанавливаем указатель на начало структуры
c = (char *)p;
// посимвольно записываем в файл структуру
for (int i = 0; i < size; i++)
{
putc(*c++, fp);
}
fclose(fp);
return 0;
}
// загрузка из файла структуры
int load(char * filename)
{
FILE * fp;
char *c;
int i; // для считывания одного символа
// количество считываемых байтов
int size = sizeof(struct person);
// выделяем память для считываемой
//структуры
struct person * ptr = (struct person *) malloc(size);
if ((fp = fopen(filename, "rb")) == NULL)
{
perror("Error occured while opening file");
return 1;
}
// устанавливаем указатель на
// начало блока выделенной памяти
c = (char *)ptr;
// считываем посимвольно из
//файла
while ((i = getc(fp))!=EOF)
{
*c = i;
c++;
}
fclose(fp);
// вывод на консоль
//загруженной структуры
printf("%-20s %5d \n", ptr->name, ptr->age);
free(ptr);
return 0;
}

#include <stdlib.h>
struct person
{
char name[25];
int age;
};
int save(char * filename, struct person *p);
int load(char * filename);
int main(void)
{
char * filename = "person.dat";
struct person coder;
printf("\n Enter your name: ");
scanf("%s",&coder.name);
printf("\n Enter your age: ");
scanf("%d",&coder.age);
save(filename, &coder);
printf("\n Loading data from file: \n");
load(filename);
return 0;
}
// запись структуры в файл
int save(char * filename, struct person *p)
{
FILE * fp;
char *c;
int size = sizeof(struct person);
// количество записываемых байтов
if ((fp = fopen(filename, "wb")) == NULL)
{
perror("Error occured while opening file");
return 1;
}
// устанавливаем указатель на начало структуры
c = (char *)p;
// посимвольно записываем в файл структуру
for (int i = 0; i < size; i++)
{
putc(*c++, fp);
}
fclose(fp);
return 0;
}
// загрузка из файла структуры
int load(char * filename)
{
FILE * fp;
char *c;
int i; // для считывания одного символа
// количество считываемых байтов
int size = sizeof(struct person);
// выделяем память для считываемой
//структуры
struct person * ptr = (struct person *) malloc(size);
if ((fp = fopen(filename, "rb")) == NULL)
{
perror("Error occured while opening file");
return 1;
}
// устанавливаем указатель на
// начало блока выделенной памяти
c = (char *)ptr;
// считываем посимвольно из
//файла
while ((i = getc(fp))!=EOF)
{
*c = i;
c++;
}
fclose(fp);
// вывод на консоль
//загруженной структуры
printf("%-20s %5d \n", ptr->name, ptr->age);
free(ptr);
return 0;
}

Это конечно хорошо, а в чем вопрос то?
Похожие вопросы
- Помогите написать программу на C++
- Написать программу на c++
- Помоги пожалуйста написать программу на C++
- Помогите с программой на C++
- ПОМОГИТЕ СОСТАВИТЬ ПРОГРАММУ НА C++.
- Короткая программа на C++
- Написать программу на C++.Создать класс vector3d, задаваемый тройкой координат. Создать конструктор...
- Помогите написать программу на C++
- Составить программу на c++ УСПОЛЬЗУЯ МАССИВ!!!
- Помогите пожалуйста составить правильную программу на C++ 12 вариант