Читать файл в строку
Я хотел бы прочитать файл в строку.
У меня есть следующий код, который может быть скомпилирован, но не может быть запущен.
Моя идея состоит в том, чтобы использовать цикл 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 );