c语言 这句编译错误是什么意思? 第167行长这样“ if((fp=fopen(*filename,"r"))==NULL)”

2025-02-24 16:39:41
推荐回答(3个)
回答1:

fopen第一个参数传入的是一个字符串。(const char * )
而你传入的是一个*filename ,也就是一个字符串取值,也就是一个字符。

所以报错说,
expected ‘const char * __restrict__’ 期望是一个const char *类型的参数
but argument is of type ‘char’ 但你传入的是一个字符(char)类型的参数。

所以filename前不要有*号

回答2:

去掉星号:
if((fp=fopen(filename,"r"))==NULL)

char filename[80]; 或 char *filename;
调用 fopen 时 用 fp=fopen(filename,"r") ...

回答3:

filename出问题了,