#include #include typedef struct { int data1; float data2; char data3[30]; // サイズを変更 } MyObject; void serializeObject(const char* filename, const MyObject* obj) { FILE* file; if (fopen_s(&file, filename, "wb") == 0 && file != NULL) { fwrite(obj, sizeof(MyObject), 1, file); fclose(file); printf("Object serialized and saved to %s\n", filename); } else { perror("Error opening file for writing"); } } void deserializeObject(const char* filename, MyObject* obj) { FILE* file; if (fopen_s(&file, filename, "rb") == 0 && file != NULL) { fread(obj, sizeof(MyObject), 1, file); fclose(file); printf("Object deserialized from %s\n", filename); } else { perror("Error opening file for reading"); } } int main() { // "Hello, C serialization with a longer string!" は30文字以内に変更 MyObject originalObject = { 42, 3.14f, "Hello, C serialization!" }; MyObject loadedObject; serializeObject("serialized_object.bin", &originalObject); deserializeObject("serialized_object.bin", &loadedObject); printf("Loaded Object: data1=%d, data2=%.2f, data3=%s\n", loadedObject.data1, loadedObject.data2, loadedObject.data3); return 0; }