【c语言】文件的光标操作 | 您所在的位置:网站首页 › word光标怎么移动到下一行 › 【c语言】文件的光标操作 |
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦 printf("文件打开成功!\n"); //...操作 fclose(p); p = NULL; } else { printf("文件打开失败!\n"); } system("pause"); return 0; } 一、ftell函数 ftell函数用于获取当前文件指针在文件中的位置(以字节为单位) 可以用于对文件进行重新定位或判断文件大小等操作 使用: //获得光标位置 printf("光标位置:%ld\n", ftell(p));由此看出:文件光标默认在0处 如何移动文件光标呢? 不难想到 光标会在文件读取时随着读取的位置移动 读取数据: //获得光标位置 printf("光标位置:%ld\n", ftell(p)); //读取数据 printf("%c\n", fgetc(p)); printf("光标位置:%ld\n", ftell(p)); printf("%c\n", fgetc(p)); printf("%c\n", fgetc(p)); printf("%c\n", fgetc(p)); printf("光标位置:%ld\n", ftell(p));光标随着数据的读取也在移动,读取一个T光标位置移动到了1 再读取三个数据,光标位置移动到了4 二、rewind函数rewind函数可以将文件光标重新定位到文件的开头位置,没有返回值 rewind函数会将文件光标重置到文件的开头位置 因此之前读取过的数据就要重新读取 在文件读取时,如果希望回到文件开头重新读取一遍文本内容,可以使用 rewind函数将文件光标重置到开头,再进行读取操作 三、fgetpos函数
定义一个fpos_t类型的变量查看一下: 是一个对long long重命名的类型 (重命名typedef知识点:【c语言】typedef详解)
使用fgetpos函数获取光标的位置: fsetpos函数用于将文件光标设置为文件流中某个位置 与fgetpos函数类似,fsetpos函数使用了一个fpos_t类型的参数来表示在哪个位置设置文件光标。
定义一个同类型数据(代表光标位置): const fpos_t wz = 5; //设置光标位置 const fpos_t wz = 5; fsetpos(p, &wz); printf("%c\n", fgetc(p));如果我们想对文件中的内容进行修改,直接fputc不能成功修改,就需要进行重定位操作 文件内容没有被修改成功: 重定位到当前位置成功修改:
定位到结束位置,偏移-2:向左偏移两位,修改 i 当使用 SEEK_SET 进行偏移时,将起始位置从文件开头算起 当使用 SEEK_CUR 进行偏移时,则是相对于当前位置的偏移 而使用 SEEK_END 进行偏移时,则会以文件末尾为起点 总结使用下列文件操作函数,可以在程序中对文件进行读写操作 ftell() 函数用于获取当前文件光标的位置 rewind() 函数用于将文件指针重置到文件开头 fgetpos() 和 fsetpos() 函数用于获取和设置文件当前指针位置,使用了fpos_t类型 fseek() 函数可将文件指针从当前位置向前或向后移动一定数量的字节,进行重定位 文件更多知识: 【c语言】文件的基本概念、操作 【c语言】文本文件的读写操作 |
CopyRight 2018-2019 实验室设备网 版权所有 |