Ожидается «FILE *», но аргумент имеет тип «char *» - PullRequest
1 голос
/ 18 апреля 2020

У меня есть код, где я даю argv [1], который в конечном итоге откроет файл:

int main(int argc, char** argv) {
  read(argv[1]);
}

Дело в том, что .h имеет следующую ошибку "ошибка ожидается" ФАЙЛ * {aka struct _IO_FILE *} ', но аргумент имеет тип' char * '"

Это .h:

#include <stdio.h>

struct node{
  int id;
  int *link_ids;
  int links;
  }; 

struct node *nodes;
void read(FILE * openedfile); 

Дело в том, что argv [1] будет Название ФАЙЛА (TXT). Пустое чтение - это то, что будет делать все с файлом. Также я не могу изменить каким-либо образом основной. c Может ли кто-нибудь помочь мне с моей ошибкой?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2020

Если все выполнено с помощью read(), за исключением присвоения указателя файла, вы должны сделать это:

 int main(int argc, char** argv) {

        FILE *fp;
        fp=fopen(argv[1], "r");
        read(fp);
        //..
    }
0 голосов
/ 18 апреля 2020

argv[1] является массивом символов, вы передаете его функции, ожидающей параметра FILE*.

Если вы просто хотите передать имя файла в качестве аргумента функции, он должен быть:

void read(char * openedfile); 
...