尝试在二进制文件中保存结构数组。 我想我需要一个。
typedef struct {
int y, o;
}num;
int main(){
num numbers[10];
for (i = 0; i < 10; i++){
numbers [i].y = i;
numbers [i].o = i * 2;
}
FILE *f;
f=fopen("test","r+");
}
答案 0 :(得分:1)
如果对不同体系结构和/或编译器的兼容性并不是真正令人担忧的话,您可以像编写任何数据一样编写它(在某种意义上,您编写的是您将加载它的位置)。如果必须具有兼容性,则无法使用此方法,则必须编写函数以在更抽象的级别上进行读写。
fwrite()
,在您的情况下是指向数字的指针sizeof()
函数,这告诉函数您的数据有多大。 sizeof(num)
为你10
。FILE *
这里有一个简短的例子:
typedef struct {
int y, o;
}num;
int main(){
num numbers[10];
for (i = 0; i < 10; i++) { // you blow array bounds, fixed
numbers [i].y = i;
numbers [i].o = i * 2;
}
FILE *f;
f = fopen("test","r+");
if (f != NULL) {
fwrite(&numbers, sizeof(num), 10, f);
fclose(f);
} else {
// fopen error...
}
exit(0);
}
答案 1 :(得分:0)
只需运行该代码
#include <stdio.h>
typedef struct {
int y, o;
}num;
int main()
{
num numbers[10];
int i=0;
for (i = 0; i < 10; i++)
{
numbers [i].y = i;
numbers [i].o = i * 2;
}
FILE *f;
f=fopen("test","r+");
for (i = 0; i < 10; i++)
fprintf(f," %d %d " ,numbers[i].y,numbers[i].o);
}