如何将结构写入文件 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);
如果打印实际上 有效 但你似乎得到了奇怪的值,请确保你 设置 变量在您尝试打印它们之前。
是否可以将我的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);
如果打印实际上 有效 但你似乎得到了奇怪的值,请确保你 设置 变量在您尝试打印它们之前。