阅读量:0
要使用ftell
函数来提高文件的读写效率,可以结合使用fseek
函数来定位文件指针的位置。以下是一个使用ftell
和fseek
实现文件高效读写的示例:
#include <stdio.h> int main() { FILE *file = fopen("example.txt", "r+"); if (file == NULL) { perror("Error opening file"); return 1; } // 获取文件大小 fseek(file, 0, SEEK_END); long fileSize = ftell(file); fseek(file, 0, SEEK_SET); // 读取文件内容 char *buffer = (char*)malloc(fileSize); fread(buffer, 1, fileSize, file); // 修改文件内容 for (int i = 0; i < fileSize; i++) { buffer[i] = buffer[i] + 1; } // 将修改后的内容写入文件 fseek(file, 0, SEEK_SET); fwrite(buffer, 1, fileSize, file); fclose(file); free(buffer); return 0; }
在这个示例中,先使用ftell
和fseek
函数获取文件的大小,并根据文件大小动态分配内存。然后读取文件内容到内存中,并修改文件内容。最后将修改后的内容写入文件。
这种方法可以减少文件读写次数,提高文件的读写效率。