如何打开文件并放入数组,C

时间:2012-01-31 18:04:06

标签: c compiler-construction

    #include <stdio.h>

FILE *fl;
char content[BUFSIZ];

int main() {

  int i;

  fl = fopen ("data.txt", "rt");
  content = fgetc(fl);

  for (i=0;i <= sizeof(content); i++ ){
    printf("%c",content[i]);
  }

  fclose(fl);
}

我正在尝试打开文件并将文本文件的内容放入content []数组中。但是当我尝试编译时,我得到以下错误。

y:~/homework1: gcc -o hw1_2 hw1_2.c
hw1_2.c: In function 'main':
hw1_2.c:11:11: error: incompatible types when assigning to type 'char[1024]' from type 'int'

1 个答案:

答案 0 :(得分:1)

函数fgetc读取单个字符并返回它。所以你试图将一个整数分配给一个数组,但这不会起作用。

您应该使用fread

fread(content, 1, sizeof(content), fl);

然而,既然你给家庭作业加了标签,你可能会想要这样的东西:

int ch;

while (i < SIZE && (ch = fgetc(fl)) != EOF)
    content[i++] = ch;