c-应为"FILE*",但参数的类型为"char*"



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

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

问题是.h有以下错误,"错误应为'FILE*{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]将成为FILE(txt(的名称。空读是一种可以对文件执行所有操作的方法。我也不能以任何方式修改main.c有人能帮我纠正错误吗?

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

如果您只想将文件名作为函数的参数传递,它应该是:

void read(char * openedfile); 

如果除了文件指针分配之外的所有操作都是由read()完成的,则应该执行以下操作:

int main(int argc, char** argv) {
FILE *fp;
fp=fopen(argv[1], "r");
read(fp);
//..
}

相关内容

最新更新