我想将文件读入字符串。
我有以下可以编译但无法运行的代码。
我的想法是使用while循环将文件中的每个字符附加到字符串的末尾,直到EOF。
char string[50000];
FILE *file;
file = fopen("filename.txt", "r");
char buffer;
while((buffer=fgetc(file)) != EOF)
{
strcat(string, buffer);
}
尝试设置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 );