预期的'FILE *',但参数的类型为'char *'

问题描述 投票:1回答:1

我有一个代码,我给出一个argv [1],最终将打开一个文件:

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

事实是,.h出现以下错误,“错误预期为'FILE * {aka结构_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]将成为FILE(txt)的名称。无效读取是将对文件进行所有操作的读取。我也无法以任何方式修改main.c有人可以帮助我解决我的错误吗?

c file header char argv
1个回答
0
投票

[argv[1]是一个char数组,正在将其传递给需要FILE*参数的函数。

如果只想将文件名作为函数的参数传递,则应为:

void read(char * openedfile); 

0
投票

如果所有操作都由read()完成,除了文件指针分配,您应该这样做:

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

        FILE *fp;
        fp=fopen(argv[1], "r");
        read(fp);
        //..
    }
© www.soinside.com 2019 - 2024. All rights reserved.