关于读写文件

玻璃心orz 2017-11-20 11:57:47
如下程序所示,
void writePts(const CvMat* mat, struct FILE* f)
{
int rows;
int cols;
int i,j;
rows = mat->rows;
cols = mat->cols;
for (j=0;j<rows;j++)
{
for(i=0;i<cols;i++)
{
fprintf(f,"%.0f",mat->data.fl[j*cols+i]);
}
fprintf(f,"\n");
}
}

fprintf()函数在写文件时报错,error C2664: “fprintf”: 不能将参数 1 从“FILE *”转换为“FILE *”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换,
这到底是什么原因,求解释!!!
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-21
  • 打赏
  • 举报
回复
VS IDE中,在不明白的符号FILE上点鼠标右键,选转到定义。
列子汤问 2017-11-21
  • 打赏
  • 举报
回复
看看 FILE 结构体在哪里定义的。
自信男孩 2017-11-20
  • 打赏
  • 举报
回复
void writePts(const CvMat* mat, struct FILE* f)
第二个参数,应该是去掉struct,直接是FILE *f吧
paschen 2017-11-20
  • 打赏
  • 举报
回复
你的struct FILE 并不是 标准库中的 FILE,去掉你struct FILE的定义
陪妳看星星 2017-11-20
  • 打赏
  • 举报
回复
FILE本来就是一个结构:typedef struct XXX FILE; 前面再加struct有问题。 VS2015报错:“error C2371: “FILE”: 重定义;不同的基类型” 再看看函数writePts的声明和调用时传递的参数是否也有struct,一并去掉试试。
零隐 2017-11-20
  • 打赏
  • 举报
回复
去掉 struct
玻璃心orz 2017-11-20
  • 打赏
  • 举报
回复
引用
第二个参数,应该是去掉struct,直接是FILE *f吧
跟那个没有关系,去掉struct还是报同样的错, error C2664: “fprintf”: 不能将参数 1 从“FILE *”转换为“FILE *”

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧