如何将结构写入文件 C

How to write a struct to a file C

是否可以将我的struct中的数据写入文本文件?

下面是我的struct:

struct Person{
    int date;
    char acName[30];
    int Weight;
    float Length;
    float Quetelet;
};

以下是我尝试将其写入文件的方式:

FILE *fptr;
fptr = fopen ("hello.txt", "w");
if (fptr == NULL){
  printf ("Error!");
  exit (1);
}
fprintf (fptr, "Date: %d\n", p.date);
fprintf (fptr, "Name: %s\n", p.acName);
fprintf (fptr, "Weight: %d\n", p.Weight);
fprintf (fptr, "Length: %f\n", p.Length);
fprintf (fptr, "Your Quetelet: f", &p.Quetelet);

fclose (fptr);

但是当我尝试这样做时,我得到以下输出:

Date: 4201600
Name: Ðþ(
Weight: 4201600
Length: 0.000000
Your Quetelet: 0.000000

抛开 quetelet 实际上 是什么这个明显的问题, 我相信你不应该尝试写它的地址,尤其是没有有效的格式说明符:

fprintf(fptr,"Your Quetelet: f",&p.Quetelet);

相反,试一试:

fprintf(fptr,"Your Quetelet: %f",p.Quetelet);

如果打印实际上 有效 但你似乎得到了奇怪的值,请确保你 设置 变量在您尝试打印它们之前。