加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用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?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读