This repository has been archived on 2023-10-26. You can view files and clone it, but cannot push or open issues or pull requests.
VSMechatronics/Exercises/C19/ex4.c

51 lines
1.1 KiB
C
Raw Normal View History

2023-10-10 10:24:31 +00:00
#include <stdio.h>
struct Person {
int age;
int year_of_birth;
char forename[30];
char surname[50];
};
void print_person(struct Person p) {
printf("p.age=%d p.year_of_birth=%d p.forename=%s p.surname=%s\n", p.age, p.year_of_birth, p.forename, p.surname);
}
int main() {
struct Person p;
FILE *fp;
char choice;
char filename[4097];
printf("Read or write a file? (r/w) "); scanf("%c", &choice);
if (choice == 'w') {
printf("Enter age: "); scanf("%d", &p.age);
printf("Enter birth year: "); scanf("%d", &p.year_of_birth);
printf("Enter forename: "); scanf("%29s", p.forename);
printf("Enter surname: "); scanf("%49s", p.surname);
printf("Enter filename to save to: "); scanf("%4096s", filename);
fp = fopen(filename, "wb");
if (fp == NULL) {
printf("Failed to open file for writing\n");
return 1;
}
fwrite(&p, 1, sizeof(p), fp);
} else {
printf("Enter file to read from: "); scanf("%4096s", filename);
fp = fopen(filename, "rb");
if (fp == NULL) {
printf("Failed to open file for reading\n");
return 1;
}
fread(&p, 1, sizeof(p), fp);
}
print_person(p);
return 0;
}