最近在看文件操作函数时对文件内部的位置指针有点疑惑
测试代码:
pos = ftell(fp);
while (!(flag = feof(fp)))
{
fscanf_s(fp, "%c", &ch, 1);
pos = ftell(fp);
}
测试文本文件:
断点调试结果:
我对文件指针内部的成员_ptr的理解是“下一个要被读取的字符的地址”
对上面的测试结果我假设了两种文件开头和文件结尾的位置
第一种:文件开头的地址与文本文件中第一个字符'1'的地址相同,文件结尾的地址是文本文件最后一个字符的后一位,如下图
第二种:文件开头的地址是文本文件中的第一个字符'1'的前一位,文件结尾的地址与文本文件最后一位字符'3'的地址相同,如下图
现在不是很清楚是第一种还是第二种地址分布,其实就是对文本文件的首尾的理解很模糊,没搞清楚边界
望不吝赐教,不胜感激
FILE的内部成员我写这么久C从来没用过,呵呵,祝你探究成功