我有一个代码,其中我给出了一个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);
//..
}