首页 > 解决方案 > c中fseek函数中的origin参数

问题描述

我作业中的一段代码

int main()
{
    Sums("input.txt");
    return 0;
}
void Sums(char* filename)
{
    FILE* f, * h;
    int i, len, sum;
    char num[3];
    if ((f = fopen(filename, "r")) == NULL)
        GetLost("Input Error");
    if ((h = fopen("temp.txt", "w")) == NULL)
        GetLost("Output Error");
    fseek(f, 0, 2);
    len = ftell(f) / 2;
}

input.txt 是 1101112607080

我的问题是 fseek 函数中的第三个参数不应该是 SEEK_SET、SEEK_CUR、SEEK_END 之一吗?而这段代码中len的值为6,那​​么fseek origin参数中的2是什么意思呢?

标签: c

解决方案


stdio.h,

#ifndef SEEK_SET
#define SEEK_SET    0   /* set file offset to offset */
#endif
#ifndef SEEK_CUR
#define SEEK_CUR    1   /* set file offset to current plus offset */
#endif
#ifndef SEEK_END
#define SEEK_END    2   /* set file offset to EOF plus offset */
#endif

推荐阅读