Как прочитать весь контент, который хранится в текстовом файле? - PullRequest
0 голосов
/ 30 января 2019

Как прочитать все содержимое, которое хранится в текстовом файле?

Если у меня есть текстовый файл со словами в нем, и я хочу прочитать все из них и сохранить их в строку, как я могусделать это?

Если я использую fscanf(in, "%s", string), я читаю только первое слово, а когда появляется первый пробел, fscanf прекращает свою работу.Как я могу прочитать все слова и сохранить их в строку?

1 Ответ

0 голосов
/ 30 января 2019

Если вы спрашиваете, как записать все содержимое файла в один буфер в памяти, вот один из способов (при условии, что в памяти достаточно места):

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...