c 循环 读取文件并把读取胡内容 拼接到一个字符串中
下面是一个示例代码,可以循环读取文件并将其内容拼接到一个字符串中:
#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;
}
注意事项:
- 文件必须存在并且可读。
- 代码中使用了动态内存分配,需要在使用完毕后手动释放内存,否则会造成内存泄漏。
- 读取文件内容时,需要注意文件的换行符,否则拼接的字符串可能会出现问题。
原文地址: https://www.cveoy.top/t/topic/bSDt 著作权归作者所有。请勿转载和采集!