qq_40395537 2018-01-27 12:01 采纳率: 55.6%
浏览 1507
已采纳

关于fseek函数的改变流位置中的指针

#include "stdafx.h"

int main(int argc, char* argv[])
{
int size = 0;
FILE* ptr_file = NULL;
FILE* ptr_new_file;

ptr_file = fopen("D:\\pptp电脑版客户端.exe","r");
ptr_new_file = ptr_file;
if(ptr_file == NULL)
{
    printf("文件打开失败");
}
else
{
    int result = fseek(ptr_file,0,SEEK_END);
    size = ftell(ptr_file);
    printf("%d\n",size/1024);
    ptr_new_file == ptr_file?printf("OK"):printf("NO");
}


return 0;

}

指针指向的地址 并没有改变 函数介绍不是说可以改变吗
还有就是为什么ftell 又能得到结果 请大神解答

  • 写回答

1条回答 默认 最新

  • 不渝矢志 2018-01-27 12:16
    关注

    fseek改变的不是指向文件FILE类型的指针,这个指针在文件的整个操作过程中是不会变的。在文件操作的过程中会维护一个指向当前文件中数据位置的变量,这个变量才会根据fseek而变化,所以ftell有效

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 Python词频统计,运行出的Excel没有内容
    • ¥15 求推荐一个好用的录屏软件
    • ¥15 kali显示no x11 display variable was set;
    • ¥15 如何实现这个Python开发问题
    • ¥15 Erasure Code纠删码表
    • ¥15 用vite创建的vue3项目,404重定向不起作用??
    • ¥15 关于#c语言#的问题:一个球从80米高度自由落下,每次落地后反弹的高度为原高度的一半计算6次小球反弹的高度.(反弹结果取整,使用走走for循环结构)
    • ¥15 SurfaceControl的screenshot问题
    • ¥15 基于51单片机的oled菜单代码,要C语言,模块化编程!
    • ¥15 JAVAswing,设计一个扑克牌什么的