要知道, 一团者个文件打开后有散顷一个位置指针, 指示当前读写位置..
顺序读写时, 读写一个, 系统自动把位冲或陆置指针移动到下一位置...
用fseek()就可以手动更改..
用法是fseek(FILE*(文件指针),long offset(偏移量),int whence(参考位置))
参考位取值:0 文件开头, 1 当前位置, 2 文件最后..
作用就是将FILE*指定的文件的位置指针从参考位置移动offset字节
移动方向由offset的+/-决定..
另外用rewind()可以将位置指针恢复到文件头..
整体思路如下:首先,找到找到要删除的那一行的漏首行号,假如是j行,然后把指向文件的指针定位到j+1行处(可以使用fseek函数,Linux下可以使用lseek函数);
读取一行(此时的文件指针已到达改行的末丛银尾处,也可以认为是到了下一行的开始处),再把文件指返郑数针定位到j行,把刚才读出的再写会,使用循环直至文件结束。
简单的说就是把后面的每一行一行一行的读出,再一行一行的写到前面一行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)