关于ambiguous overload

reticentme 2010-02-16 09:05:05
if(lineEdit->text()==fread(pwd[i],sizeof(struct buf),1,fp2))
就这么简单的一句话,用来判断输入与文件中的是否相同,怎么就重载错误呢?
...全文
1186 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
reticentme 2010-02-17
  • 打赏
  • 举报
回复
引用 6 楼 dext 的回复:
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

的返回值 是一个整数 表示你读了 多少个大小为 size 字节 的元素(并不是数据内容)

而你的lineEdit->text() 是一个 QString 吧。

那读的数据内容该怎么表示呢
dext 2010-02-17
  • 打赏
  • 举报
回复
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

的返回值 是一个整数 表示你读了 多少个大小为 size 字节 的元素(并不是数据内容)

而你的lineEdit->text() 是一个 QString 吧。
dyw 2010-02-17
  • 打赏
  • 举报
回复
可以用QTextStream::readLine读取后再比较
dext 2010-02-17
  • 打赏
  • 举报
回复
引用 7 楼 reticentme 的回复:
引用 6 楼 dext 的回复:
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

的返回值 是一个整数 表示你读了 多少个大小为 size 字节 的元素(并不是数据内容)

而你的lineEdit->text() 是一个 QString 吧。
那读的数据内容该怎么表示呢


ptr 啊? 不过要保证 你的 内存要分配够了。
reticentme 2010-02-16
  • 打赏
  • 举报
回复
求助求助,最好能提供别的方法
reticentme 2010-02-16
  • 打赏
  • 举报
回复
引用 2 楼 cblcz 的回复:
pwd[i]改为&pwd[i]看看呢

就是加了&才报重载错误,不加&报的是不可将buf型转为void*型
cblcz 2010-02-16
  • 打赏
  • 举报
回复
pwd[i]改为&pwd[i]看看呢
cblcz 2010-02-16
  • 打赏
  • 举报
回复
if(lineEdit->text()==fread(&pwd[i],sizeof(struct buf),1,fp2))

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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