VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1087|回复: 4

[已解决]VS2017,SetFilePointer函数从后往前读取数据出现错误

[复制链接]
49_avatar_middle
最佳答案
0 
在线会员 发表于 2020-6-9 11:25:10 | 显示全部楼层 |阅读模式
SetFilePointer(hFile, -32-sizeof(Student), NULL, FILE_END);
        char seTEXT1[32] = "0";
        bRet = ReadFile(hFile, seTEXT1, sizeof(seTEXT1), &dwRealRead, NULL);


1>e:\study   record\6月份\6.9\文件指针及目录的创建与删除\main.cpp(78): error C4308: 负整型常量转换为无符号类型
最佳答案
51_avatar_small
2020-6-9 12:47:28
VS2013 是警告,到了 VS2017 直接是错误了。。。

  1. LONG dist = sizeof(Student);
  2. SetFilePointer(hFile, -32 - dist, NULL, FILE_END);
复制代码


改成这样就可以了

第二个参数-32在vs2017里面报错

第二个参数-32在vs2017里面报错
2.png.png




上一篇:函数的重载
下一篇:求助各位老师 关于赋值运算符重载问题
51_avatar_middle
最佳答案
90 
online_admins 发表于 2020-6-9 12:47:28 | 显示全部楼层    本楼为最佳答案   
bestAnswer
VS2013 是警告,到了 VS2017 直接是错误了。。。

  1. LONG dist = sizeof(Student);
  2. SetFilePointer(hFile, -32 - dist, NULL, FILE_END);
复制代码


改成这样就可以了
49_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-6-9 13:01:55 | 显示全部楼层
Syc 发表于 2020-6-9 12:47
VS2013 是警告,到了 VS2017 直接是错误了。。。

谢谢老师,查了一上午,始终没搞出来。感谢老师
49_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-6-9 13:04:20 | 显示全部楼层
Syc 发表于 2020-6-9 12:47
VS2013 是警告,到了 VS2017 直接是错误了。。。

老师,我计算出sizeof(student)是40,直接写出-72为什么也是出现错误啊?
49_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-6-9 13:22:53 | 显示全部楼层
Syc 发表于 2020-6-9 12:47
VS2013 是警告,到了 VS2017 直接是错误了。。。

找到原因了老师,文件写入总共就77字节,我那个文件不知道怎么有256字节内容,重新写入了一下,运行成啦,再次感谢老师。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-9-29 17:37

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表