Writing Structs to a file in c [closed]

被刻印的时光 ゝ 提交于 2019-12-03 04:18:54

问题


Is it possible to write an entire struct to a file

example:

struct date {
    char day[80];
    int month;
    int year;
};

回答1:


Is it possible to write an entire struct to a file

Your question is actually writing struct instances into file.

  1. You can use fwrite function to achieve this.
  2. You need to pass the reference in first argument.
  3. sizeof each object in the second argument
  4. Number of such objects to write in 3rd argument.
  5. File pointer in 4th argument.
  6. Don't forget to open the file in binary mode.
  7. You can read objects from file using fread.
  8. Careful with endianness when you are writing/reading in little endian systems and reading/writing in big endian systems and viceversa. Read how-to-write-endian-agnostic-c-c-code

    struct date *object=malloc(sizeof(struct date));
    strcpy(object->day,"Good day");
    object->month=6;
    object->year=2013;
    FILE * file= fopen("output", "wb");
    if (file != NULL) {
        fwrite(object, sizeof(struct date), 1, file);
        fclose(file);
    }
    

You can read them in the same way....using fread

    struct date *object2=malloc(sizeof(struct date));
    FILE * file= fopen("output", "rb");
    if (file != NULL) {
        fread(object2, sizeof(struct date), 1, file);
        fclose(file);
    }
    printf("%s/%d/%d\n",object2->day,object2->month,object2->year);


来源:https://stackoverflow.com/questions/16997141/writing-structs-to-a-file-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!