用fread读取所有点()

时间:2015-02-08 13:15:36

标签: c

在我的程序中,我想通过每个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点)? 这看起来怎么样?我的书中没有找到一个例子。

1 个答案:

答案 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分。