将文件的全部内容读取到 c char *,包括新行,可以使用以下方法:
以下是一个示例代码:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
char *read_file(const char *filename) {
FILE *file = fopen(filename, "rb");
if (file == NULL) {
return NULL;
}
fseek(file, 0, SEEK_END);
long size = ftell(file);
fseek(file, 0, SEEK_SET);
char *buffer = (char *)malloc(size + 1);
if (buffer == NULL) {
fclose(file);
return NULL;
}
fread(buffer, 1, size, file);
buffer[size] = '\0';
fclose(file);
return buffer;
}
int main() {
char *content = read_file("example.txt");
if (content != NULL) {
printf("%s", content);
free(content);
}
return 0;
}
在这个示例代码中,我们使用 fopen 函数打开文件,并使用 fseek 函数获取文件大小。然后,我们使用 malloc 函数分配足够的内存空间,以存储文件内容。接下来,我们使用 fread 函数读取文件内容,并将其存储到分配的内存空间中。最后,我们使用 fclose 函数关闭文件。
在 main 函数中,我们调用 read_file 函数,并将文件内容存储到 char *content 中。然后,我们使用 printf 函数打印文件内容,并使用 free 函数释放内存空间。
领取专属 10元无门槛券
手把手带您无忧上云