如何读取存储在txt文件中的所有内容?

时间:2019-01-29 22:20:02

标签: c file

如何读取存储在txt文件中的所有内容?

如果我有一个带有文字的txt文件,并且我想阅读所有文字并将其存储为字符串,该怎么办?

如果我使用fscanf(in, "%s", string),我只会读第一个单词,而当有第一个空格时,fscanf会停止工作。如何阅读所有单词并将其存储在字符串中?

1 个答案:

答案 0 :(得分:2)

如果您要问如何将文件的所有内容都放到内存中的单个缓冲区中,这是一种方法(假设内存中有足够的空间):

FILE *fp;
char *buffer = NULL;
size_t len, num_read;

fp = fopen("myfile", "r");
if(fp == NULL) // handle error...
{}

fseek(fp, 0, SEEK_END);
len = ftell(fp);
rewind(fp);

buffer = malloc(len + 1);
if(buffer == NULL) // handle error...
{}

num_read = fread(buffer, 1, len, fp);
fclose(fp);

buffer[num_read] = '\0';

// buffer now contains the entire content of your file
use(buffer);

free(buffer);
buffer = NULL;