下面是一个示例代码,可以循环读取文件并将其内容拼接到一个字符串中:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    char *filename = "test.txt";
    char *str;
    long file_size;

    // 打开文件
    fp = fopen(filename, "r");
    if (fp == NULL) {
        printf("Failed to open file: %s\n", filename);
        exit(1);
    }

    // 获取文件大小
    fseek(fp, 0, SEEK_END);
    file_size = ftell(fp);
    fseek(fp, 0, SEEK_SET);

    // 分配字符串内存
    str = malloc(file_size + 1);
    if (str == NULL) {
        printf("Failed to allocate memory.\n");
        exit(1);
    }

    // 读取文件内容到字符串
    while (fgets(str, file_size, fp) != NULL) {
        // 拼接字符串
        // 注意:fgets() 会读取换行符,需要手动去掉
        str[file_size - 1] = '\0'; // 去掉换行符
        strcat(str, "\n"); // 加上换行符
    }

    // 关闭文件
    fclose(fp);

    // 输出字符串
    printf("File contents:\n%s", str);

    // 释放内存
    free(str);

    return 0;
}

注意事项:

  • 文件必须存在并且可读。
  • 代码中使用了动态内存分配,需要在使用完毕后手动释放内存,否则会造成内存泄漏。
  • 读取文件内容时,需要注意文件的换行符,否则拼接的字符串可能会出现问题。
c 循环 读取文件并把读取胡内容 拼接到一个字符串中

原文地址: https://www.cveoy.top/t/topic/bSDt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录