如何将结构写入文件C

时间:2015-01-13 10:02:22

标签: c file-io

是否可以将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

1 个答案:

答案 0 :(得分:0)

暂不明白quetelet实际是什么的明显问题,我相信你不应该试图写出它的地址,特别是没有有效的格式说明符:

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

相反,请试一试:

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

如果打印实际上正在运行但您似乎得到了奇怪的值,请确保在尝试打印之前将设置变量设置为某些内容