我想将文件读成字符串。
我有以下代码可以编译但无法运行。
我的想法是使用while循环将文件中的每个字符追加到字符串的末尾,直到EOF。
char string[50000];
FILE *file;
file = fopen("filename.txt", "r");
char buffer;
while((buffer=fgetc(file)) != EOF)
{
strcat(string, buffer);
}
答案 0 :(得分:1)
首先尝试将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.
答案 1 :(得分:0)
您正在阅读的缓冲区必须是一个数组。
char buffer[50000];
答案 2 :(得分:0)
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 );