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

问题描述 投票:0回答: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)的名称。无效读取是将对文件进行所有操作的读取。有人可以帮助我解决我的错误吗?

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

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

您可以像这样贴皮:

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

[fopen()将返回FILE函数参数所期望的指向read的指针。

如果只想传递要在函数内打开的文件名,则应为:

void read(char * openedfile); 
© www.soinside.com 2019 - 2024. All rights reserved.