summaryrefslogtreecommitdiff
path: root/c-structs
diff options
context:
space:
mode:
Diffstat (limited to 'c-structs')
-rw-r--r--c-structs/.clang-format4
-rw-r--r--c-structs/Makefile13
-rw-r--r--c-structs/character.datbin0 -> 60 bytes
-rw-r--r--c-structs/read.c24
-rw-r--r--c-structs/struct.h6
-rw-r--r--c-structs/write.c25
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
new file mode 100644
index 0000000..1a10070
--- /dev/null
+++ b/c-structs/character.dat
Binary files differ
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;
+}