论坛: 编程破解 标题: c的一个小问题? 复制本贴地址    
作者: none [onizuka]    论坛用户   登录
fwrite(&user,sizeof(struct usr),4,fp);
之后,我打开文件,发现里面全是乱码,为什么呢?

地主 发表时间: 05/11 16:14

回复: god__devil [god__devil]   论坛用户   登录
因为它和你打开的方式不一样,C里有两种打开文件的方式,那文件保存时可能和你打开时的方式不一样。两种方式分别是二进制和ASCIL。

B1层 发表时间: 05/11 17:38

回复: top [top]   论坛用户   登录
那该怎么写才不是乱码呢?

B2层 发表时间: 05/12 13:02

回复: 山鸡 [duck_chen]   论坛用户   登录
很简单,因为你错了,还有上面那个人给你在乱说,结构体是不允许整体调用的,你不能够对一个结构体整体赋值,知道吗?

B3层 发表时间: 05/14 02:00

回复: ricky [ricky]   版主   登录
上面的二位都有点对,你要写结构到文件,必须用fopen(filename,"wb");
否则,系统会在单独的0A后面加上0D,所以第一位说的有可能,然后,你的这个语句有点问题,除非你是写一个该结构的数组,否则,应该是
fwrite(&usr,sizeof(usr),1,hfile);
你一下写了4个结构的长度,文件里当然有乱码了。
不知道是不是这种情况,因为你没有说你是怎么看文件的

B4层 发表时间: 05/16 16:10

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号