问个将结构体写入文件然后读取的问题!

钱雷 2014-03-29 09:09:28
user 包括:username pwd money 胜率
有个注册用户的功能,每成功注册一次,将数据写入一个名为userinfo的文件中
下次注册到时候,会从该文件中查询,如果同名则不能注册
还有个登录的功能。
现在的问题是:我成功注册后,登录的时候,输入同样的用户名和密码,依然不可已重新登录了
问题是出在读写文件的过程中,我猜测,但能力有限,实在找不出原因

fp = fopen("userinfo","a+"); 这个是注册时候的模式 a+

fp = fopen("userinfo","r"); 这个是登录时候的模式 r

求各位大神
...全文
141 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2014-03-30
  • 打赏
  • 举报
回复
引用 8 楼 abcdql520 的回复:
问题都解决了,原因是有几处地方写成了 w 模式 文件都呗清空了
恭喜
钱雷 2014-03-29
  • 打赏
  • 举报
回复
问题都解决了,原因是有几处地方写成了 w 模式 文件都呗清空了
钱雷 2014-03-29
  • 打赏
  • 举报
回复
引用 6 楼 lm_whales 的回复:
1)用2进制编辑器,打开文件,看看写入的信息有没有问题. 2)有没有正确关闭文件. 3)文本方式(Text) 打开,要文本方式(Text) 读写 fscanf,fprintf,二进制(Binary) 打开要 二进制(Binary) 写 read,write. 目测,你用文本方式打开,用二进制在读写 文本方式 加"t",二进制方式加“b”,两者都不加,等同于加"t" "rt","r"文本方式 “rb” 二进制方式 PS: 读写方式,和打开方式不一致,不能保证结果正确。
我试试,谢谢回答
lm_whales 2014-03-29
  • 打赏
  • 举报
回复
1)用2进制编辑器,打开文件,看看写入的信息有没有问题. 2)有没有正确关闭文件. 3)文本方式(Text) 打开,要文本方式(Text) 读写 fscanf,fprintf,二进制(Binary) 打开要 二进制(Binary) 写 read,write. 目测,你用文本方式打开,用二进制在读写 文本方式 加"t",二进制方式加“b”,两者都不加,等同于加"t" "rt","r"文本方式 “rb” 二进制方式 PS: 读写方式,和打开方式不一致,不能保证结果正确。
钱雷 2014-03-29
  • 打赏
  • 举报
回复

钱雷 2014-03-29
  • 打赏
  • 举报
回复
原谅我的代码都在Linux系统下面,win7下面没有,所以不能贴太多代码 注册:fread ( temp ,sizeof(user_t) ,1, fp); //user_t是那个结构类型,temp是 user_t 类型的临时存放的变量
钱雷 2014-03-29
  • 打赏
  • 举报
回复
引用 2 楼 bobo928843007 的回复:
读写文件的过程不会有问题吧,你就调试看看,写入文件的和读出来的是否一样。
我运行程序,注册登录都没问题 但是一但我退出了程序,然后启动程序,这时候,就只有注册可以了,不能登录
bobo928843007 2014-03-29
  • 打赏
  • 举报
回复
读写文件的过程不会有问题吧,你就调试看看,写入文件的和读出来的是否一样。
钱雷 2014-03-29
  • 打赏
  • 举报
回复

69,369

社区成员

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

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