Как открыть файл и положить в массив, C - PullRequest
0 голосов
/ 31 января 2012
    #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 Ответ

1 голос
/ 31 января 2012

Функция fgetc читает один символ и возвращает его.Итак, вы пытаетесь присвоить одно целое число массиву , который не будет работать.

Для этого вам следует использовать fread.

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

Однако, поскольку вы отметили это как домашнее задание, вы можете захотеть что-то вроде этого:

int ch;

while (i < SIZE && (ch = fgetc(fl)) != EOF)
    content[i++] = ch;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...