0

我想将文件读入字符串。

我有以下可以编译但无法运行的代码。

我的想法是使用while循环将文件中的每个字符附加到字符串的末尾,直到EOF。

char string[50000];    

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

char buffer;


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

3 回答 3

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.
于 2013-12-01T15:26:12.657 回答
0

您正在读取的缓冲区必须是一个数组。

char buffer[50000];
于 2013-12-01T15:26:14.347 回答
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 );
于 2013-12-01T15:50:59.433 回答