c - 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是什么意思呢?
解决方案
在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
推荐阅读
- c++ - Boost ASIO - 在接收的同时处理数据
- prometheus - 计算计数器度量范围向量中第一个元素和最后一个元素之间的差异
- css - 报告中的工具提示正在 Oracle APEX IR 中的其他区域之下
- python - Redshift 中的 Python UDF 函数始终返回 NULL 值
- visual-studio - 条件编译符号不起作用
- sql - 如何找到上一年的变化百分比
- javascript - 无法从 office 365 word online 中的 word 表中检索内容控制
- javascript - (Laravel) 预取数据库数据中的实时搜索
- architecture - 如何搭建集成平台
- sql - 带有临时表的 RODBC::sqlQuery 给出了空字符向量,尽管查询在 SSMS 中工作并且较小的查询在相同的连接下工作