c++

如何使用ftell实现文件的高效读写

小樊
86
2024-08-15 06:22:34
栏目: 编程语言

要使用ftell函数来提高文件的读写效率,可以结合使用fseek函数来定位文件指针的位置。以下是一个使用ftellfseek实现文件高效读写的示例:

#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;
}

在这个示例中,先使用ftellfseek函数获取文件的大小,并根据文件大小动态分配内存。然后读取文件内容到内存中,并修改文件内容。最后将修改后的内容写入文件。

这种方法可以减少文件读写次数,提高文件的读写效率。

0
看了该问题的人还看了