WIN32编程出现FILE was not declared in this scope报错怎么解决?
问题根因
FILE 类型及配套的fopen、fwrite 等文件操作函数均定义在C标准库的stdio头文件中,未引入对应头文件时编译器无法识别相关定义,就会触发该报错。
修复步骤
- 在代码头部添加对应头文件引用:
C语言项目使用:#include <stdio.h>
C++项目也可使用:#include <cstdio> - 补充现有代码的缺失逻辑,避免资源泄漏和运行崩溃:
你当前的write_file函数缺少文件打开结果判断、文件关闭逻辑,同时fwrite参数也存在错误,修正后的代码参考:
void write_file(char *path) { FILE *file = fopen(path,"wb"); // 增加文件打开失败判断 if (file == NULL) { return; } int _size = GetWindowTextLength(TextBox); char *data = new char [_size+1]; GetWindowText(TextBox,data,_size+1); // 补全fwrite的第二个参数:单个写入元素的大小 fwrite(data, 1, _size+1, file); // 新增关闭文件逻辑 fclose(file); // 释放申请的堆内存,避免内存泄漏 delete[] data; }
内容的提问来源于stack exchange,提问作者user15634014
相关产品推荐
相关产品推荐

