严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0167 "const char *" 类型的实参与 "FILE *" 类型的形参不兼容 c C:\Users\小陈同学\Desktop\c\c\c.cpp 11
时间: 2023-06-30 07:02:54 浏览: 321
Qt中QString转换成const char * ()、QByteArray等方法
这个错误提示是因为在代码中,你将一个 `const char*` 类型的参数传递给了一个 `FILE*` 类型的函数形参,这两种类型是不兼容的。你需要将参数类型转换为 `FILE*` 类型或者修改函数形参的类型为 `const char*`。
以下是一个例子:
```c++
#include <stdio.h>
int main() {
const char* filename = "example.txt";
FILE* fp = fopen(filename, "r"); // 错误:const char* 类型不能直接传递给 FILE* 类型形参
if (fp == NULL) {
perror("Failed to open file");
return 1;
}
fclose(fp);
return 0;
}
```
应该将 `const char*` 类型的 `filename` 参数转换为 `FILE*` 类型,可以使用 `fopen` 函数来实现:
```c++
#include <stdio.h>
int main() {
const char* filename = "example.txt";
FILE* fp = fopen(filename, "r");
if (fp == NULL) {
perror("Failed to open file");
return 1;
}
fclose(fp);
return 0;
}
```
或者将函数的形参类型修改为 `const char*` 类型:
```c++
#include <stdio.h>
void readFile(const char* filename) {
FILE* fp = fopen(filename, "r");
if (fp == NULL) {
perror("Failed to open file");
return;
}
fclose(fp);
}
int main() {
const char* filename = "example.txt";
readFile(filename);
return 0;
}
```
阅读全文