在我的程序中,我想通过每个fread()操作读取5个点。 输出功能必须读取所有点。 我理解用ouput函数读取5点我必须做些什么。
while(fread(&point, sizeof(point), 1, save) != 0){
if(i == 5){
break;
}
printf("x-value: %f",point.x);
printf("\y-value: %f",point.y);
printf("\z-value: %f",point.z);
printf("\n\n");
i++;
}
但是如何用输出函数读取所有点(每次fread()操作我必须读取5点)? 这看起来怎么样?我的书中没有找到一个例子。
答案 0 :(得分:1)
如果您指的是如何存储5
点?,这可能就是您要找的内容
struct Point
{
float x;
float y;
float z;
};
struct Point points[5];
size_t i;
size_t count;
count = fread(&points[0], sizeof(points[0]), 1, save);
for (i = 1 ; ((i < 5) && (count == 1)) ; i++)
count = fread(&points[i], sizeof(points[0]), 1, save);
上面假设save
是有效的FILE *
实例。
如果您需要阅读单个fread
来电中的所有积分,可以这样做
count = fread(points, sizeof(points[0]), 5, save);
for (i = 0 ; i < count ; i++)
fprintf(stdout, "%f, %f, %f\n", points[i].x, points[i].y, points[i].z);
此程序将输出5
分。