c的打开文件程序出现这样错误

来源:百度知道 编辑:UC知道 时间:2024/04/24 21:25:38
assignment to "file" from "bool" lacks a cast
是什么意思,什么错误

assignment to "file" from "bool" lacks a cast
意思是你把布尔型变量直接赋值给文件型,而没有一个类型转换.
不过这条错误信息对你帮助不大,只是告诉你有错.

通常打开一个文件来读,这样写的:

FILE *fin;
char namein[72];
strcpy(namein,"my_file.txt");
if ( (fin = fopen(namein,"r") ) == NULL ) {
printf("\007Cann't open input file: %s ", namein);
exit(1);
};

通常打开一个文件来写,这样写的:

FILE *fout;
char nameout[72];
strcpy(nameout,"C:\\path1\\path2\\my_out_file.txt");
if ( (fout = fopen(nameout,"w") ) == NULL ) {
printf("\007Cann't open input file: %s ", nameout);
exit(1);
};

你调用的函数返回值是bool类型的,但你没有用bool类型的变量去接受它,而c编译器无法将其强制类型转换为FILE类型。

你仔细看一下函数的返回值类型