如何将结构写入文件

时间:2018-10-23 16:02:42

标签: c

因此,我对c语言还很陌生,并且希望将结构体写入文件以使文件易于阅读,而不必重新打开并从该文件中读取。

int main(int argc, char const *argv[])
{
uint64_t lol[8] = {125,95687445,54778,84585,5745,45874,845,1111};
Cool ben = {.name = 
"vOWRrwxCzuEyishGjHkVKboNBMUdIfhTJZLqeAgDPFcQYSatnm", .other= *lol, 
.args = 1};
 writeToFile(& ben);

return 0;

}

typedef struct {

uint64_t other[8];
uint8_t args;
char name[40];
} Cool;

void writeToFile(Cool* reading){
char * filename = "anicename";
Cool ben = * reading;
FILE * open;
open= fopen(filename,"wt");
if (open== NULL ){
    exit (-1);
}

fwrite (&ben.name , sizeof(char),sizeof(ben.function_name),open);
fwrite (&ben.other , sizeof(uint64_t),sizeof(ben.arguments),open);
fwrite (&ben.args , sizeof(uint64_t),1,open);

fclose (opening);
}

如果名称不存在,并且如果名称存在,它也不会覆盖文件而是附加现有文件,我也希望它创建一个新文件。数组并不总是满的,所以我不希望它将空指针打印到文件中。 这给

vOWRrwxCzuEyishGjHkVKboNBMUdIfhTJZLqeAgDPFcQYSatnm}úLöýàýfI @€ýfgðïøý8 LA9KvOWRrwxCzuEyishGjHkVKboNBMUdIfhTJZLQéAgDPFcQY

所以不是真的有用 感谢帮助

1 个答案:

答案 0 :(得分:2)

  

将结构写入文件以使其易于阅读,

将每个addRow(...)成员写为明文。可以使用带有格式标签的结构。

DefaultTableModel

附加代码可以区别对待struct中的特殊字符,例如不可打印的特殊字符,fprintf(open, "(Cool\n"; fprintf(open, " (other" for (i = 0; i< 8; i++) { fprintf(open, " %" PRIu64, ben.other[i]); } fprintf(open, ")\n"); fprintf(open, " (args %" PRIu8 ")\n", ben.args); fprintf(open, " (name \"%.*s\")\n", (int) sizeof ben.name, ben.name); fprintf(open, ")\n"; .name等。