应为“FILE *”,但参数类型为“char *”
Expected ‘FILE *’ but argument is of type ‘char *’
我有一个代码,其中我给出了一个最终将打开文件的 argv[1]:
int main(int argc, char** argv) {
read(argv[1]);
}
问题是 .h
有以下错误,"error expected ‘FILE * {aka struct _IO_FILE *}’ but argument is of type ‘char *’"
这是.h:
#include <stdio.h>
struct node{
int id;
int *link_ids;
int links;
};
struct node *nodes;
void read(FILE * openedfile);
问题是 argv[1] 将成为文件 (txt) 的名称。 Void read 将对文件进行所有操作。我也不能以任何方式修改 main.c
有人可以帮我解决我的错误吗?
argv[1]
是一个字符数组,您将它传递给需要 FILE*
参数的函数。
如果您只想将文件名作为函数的参数传递,则应该是:
void read(char * openedfile);
如果除了文件指针分配之外的所有事情都由 read()
完成,您应该这样做:
int main(int argc, char** argv) {
FILE *fp;
fp=fopen(argv[1], "r");
read(fp);
//..
}
我有一个代码,其中我给出了一个最终将打开文件的 argv[1]:
int main(int argc, char** argv) {
read(argv[1]);
}
问题是 .h
有以下错误,"error expected ‘FILE * {aka struct _IO_FILE *}’ but argument is of type ‘char *’"
这是.h:
#include <stdio.h>
struct node{
int id;
int *link_ids;
int links;
};
struct node *nodes;
void read(FILE * openedfile);
问题是 argv[1] 将成为文件 (txt) 的名称。 Void read 将对文件进行所有操作。我也不能以任何方式修改 main.c 有人可以帮我解决我的错误吗?
argv[1]
是一个字符数组,您将它传递给需要 FILE*
参数的函数。
如果您只想将文件名作为函数的参数传递,则应该是:
void read(char * openedfile);
如果除了文件指针分配之外的所有事情都由 read()
完成,您应该这样做:
int main(int argc, char** argv) {
FILE *fp;
fp=fopen(argv[1], "r");
read(fp);
//..
}