将文件读取到字符串

时间:2013-12-01 15:21:48

标签: c string file fgetc

我想将文件读成字符串。

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

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

char string[50000];    

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

char buffer;


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

3 个答案:

答案 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 );