diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-06-22 20:01:14 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-06-22 20:01:14 +0200 |
| commit | 134f855b537b714eb98bc1e6e1e4790b4d6491a3 (patch) | |
| tree | c1cc9d813decd8a135a699a023977e1fb095da0c /c-structs | |
| parent | d9b6fe0bd815da591d9d16efb187ddcfb2aba109 (diff) | |
| download | probe-134f855b537b714eb98bc1e6e1e4790b4d6491a3.tar.gz | |
Added writing and reading structs from files
Diffstat (limited to 'c-structs')
| -rw-r--r-- | c-structs/.clang-format | 4 | ||||
| -rw-r--r-- | c-structs/Makefile | 13 | ||||
| -rw-r--r-- | c-structs/character.dat | bin | 0 -> 60 bytes | |||
| -rw-r--r-- | c-structs/read.c | 24 | ||||
| -rw-r--r-- | c-structs/struct.h | 6 | ||||
| -rw-r--r-- | c-structs/write.c | 25 |
6 files changed, 72 insertions, 0 deletions
diff --git a/c-structs/.clang-format b/c-structs/.clang-format new file mode 100644 index 0000000..5f0e585 --- /dev/null +++ b/c-structs/.clang-format @@ -0,0 +1,4 @@ +BasedOnStyle: Chromium +ColumnLimit: 120 +IndentWidth: 4 + diff --git a/c-structs/Makefile b/c-structs/Makefile new file mode 100644 index 0000000..20694af --- /dev/null +++ b/c-structs/Makefile @@ -0,0 +1,13 @@ +all: write read + +write: + gcc write.c -o write + +read: + gcc read.c -o read + +clean: + -rm write + +tags: + ctags -R * diff --git a/c-structs/character.dat b/c-structs/character.dat Binary files differnew file mode 100644 index 0000000..1a10070 --- /dev/null +++ b/c-structs/character.dat diff --git a/c-structs/read.c b/c-structs/read.c new file mode 100644 index 0000000..b67974f --- /dev/null +++ b/c-structs/read.c @@ -0,0 +1,24 @@ +#include <stdio.h> + +#include "struct.h" + +int main(void) { + printf("Read struct\n"); + + Character ch; + + FILE* file = fopen("character.dat", "rb"); + if (file == NULL) { + perror("Error opening file"); + return 1; + } + + fread(&ch, sizeof(Character), 1, file); + fclose(file); + + printf("Name: %s\n", ch.name); + printf("Health: %d\n", ch.health); + printf("Damage: %.1f\n", ch.damage); + + return 0; +} diff --git a/c-structs/struct.h b/c-structs/struct.h new file mode 100644 index 0000000..38a0cc7 --- /dev/null +++ b/c-structs/struct.h @@ -0,0 +1,6 @@ +typedef struct { + char name[50]; + int health; + float damage; +} Character; + diff --git a/c-structs/write.c b/c-structs/write.c new file mode 100644 index 0000000..e83531a --- /dev/null +++ b/c-structs/write.c @@ -0,0 +1,25 @@ +#include <stdio.h> +#include <string.h> + +#include "struct.h" + +int main(void) { + printf("Write struct\n"); + + Character ch; + + strcpy(ch.name, "John Doe"); + ch.health = 30; + ch.damage = 5.9; + + FILE* file = fopen("character.dat", "wb"); + if (file == NULL) { + perror("Error opening file"); + return 1; + } + + fwrite(&ch, sizeof(Character), 1, file); + fclose(file); + + return 0; +} |
