如何使用fwrite将结构写入文件?
发布时间:2020-12-16 10:45:35 所属栏目:百科 来源:网络整理
导读:我是C的新手,我在使用fwrite方面遇到了麻烦. 我想使用一个包含两个值的结构: struct keyEncode{ unsigned short key[2]; unsigned short encoded[2];}; 然后我在main中声明我的struct和指向该struct的指针: struct keyEncode keynEncode;struct keyEncode
我是C的新手,我在使用fwrite方面遇到了麻烦.
我想使用一个包含两个值的结构: struct keyEncode{ unsigned short key[2]; unsigned short encoded[2]; }; 然后我在main中声明我的struct和指向该struct的指针: struct keyEncode keynEncode; struct keyEncode *storedVal = &keynEncode; 然后我为结构赋值,并希望使用fwrite将结构写入文件: keynEncode.key[0] = k1[0]; keynEncode.key[1] = k1[1]; keynEncode.encoded[0] = p[0]; keynEncode.encoded[1] = p[1]; // i tried to use storedVal.key[0] = k1[0]; but i was getting compile errors fwrite(storedVal,sizeof(storedVal),0xffff,fp); 现在我的问题是fwrite没有写任何文件. 我哪里错了? 解决方法
您在指针上使用sizeof,这不会计算有效结构的大小,而是指向其中一个指针(可能是4或8个字节).尝试使用sizeof(struct keyEncode)(如果使用C),sizeof(keyEncode)就足够了.
然后我不明白为什么你有0xFFFF作为计数,不应该只是1? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |