因此,我对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
所以不是真的有用 感谢帮助
答案 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
等。