Читать файл в строку

Я хотел бы прочитать файл в строку.

У меня есть следующий код, который может быть скомпилирован, но не может быть запущен.

Моя идея состоит в том, чтобы использовать цикл while для добавления каждого символа в файле в конец строки до EOF.

char string[50000];    

FILE *file;
file = fopen("filename.txt", "r");

char buffer;


while((buffer=fgetc(file)) != EOF)
{
    strcat(string, buffer);
}

3 ответа

Попробуйте установить string[0] в \0 первый. Также buffer должно быть char * и заканчивается нулем.

От man страница:

 NAME
 strcat, strncat -- concatenate strings

 LIBRARY
 Standard C Library (libc, -lc)

 SYNOPSIS
 #include <string.h>

 char *
 strcat(char *restrict s1, const char *restrict s2);

 char *
 strncat(char *restrict s1, const char *restrict s2, size_t n);

 DESCRIPTION
 The strcat() and strncat() functions append a copy of the null-terminated
 string s2 to the end of the null-terminated string s1, then add a termi-
 nating `\0'.  The string s1 must have sufficient space to hold the
 result.

Буфер, в который вы читаете, должен быть массивом.

char buffer[50000];
  int buffer, i;
  char string[50000];

  FILE *file;
  file = fopen("file.txt", "r");

  i = 0;

  while ( ( buffer = fgetc( file ) ) != EOF ) {
    string[i++] = buffer;
  }

  printf("%s\n", string );
Другие вопросы по тегам