首页 新闻 会员 周边 捐助

关于文件操作,写入 乱码问题。

0
悬赏园豆:5 [已解决问题] 解决于 2017-11-25 22:55

我在用C语言写一个实验室管理系统的时候,(其实就是一个简单的控制台界面),功能是把用户输入的信息写入txt文件中。
首先把用户输入的信息保存在一个结构体中,然后通过fwrite把结构体中的数据一次性写入文件中。但是我发现,当我在函数内部定义结构体变量的时候,写入到文件中的数据包含乱码,并不全是乱码,结构体中数组没有数据的地方在txt文件中是乱码。但是当我把结构体定义在所有函数外部的时候,写入到txt文件中就没有乱码,很正常。想了好久也不知道怎么回事。请问这是为什么?也就是结构体定义在函数内部和外部有什么区别?乱码是怎么回事?不胜感激!

 

Andrew_qian的主页 Andrew_qian | 菜鸟二级 | 园豆:236
提问于:2017-11-24 11:23
< >
分享
最佳答案
0

是你结构体没初始化的问题吧

收获园豆:5
秋壶冰月 | 大侠五级 |园豆:5903 | 2017-11-25 21:50

恩恩。就是这个问题。我把结构体初始化后就不会有乱码问题了。谢谢你的回答。还是想问一下,为什么定义在函数内部不初始化的话会乱码,在全局定义的话不初始化就没事。这是为什么呢?

Andrew_qian | 园豆:236 (菜鸟二级) | 2017-11-25 22:23

@Andrew_qian: 全局变量是默认初始化的,局部变量要自己初始化

秋壶冰月 | 园豆:5903 (大侠五级) | 2017-11-25 22:28

@秋壶冰月: 恩,好的,明白了,十分感谢!

Andrew_qian | 园豆:236 (菜鸟二级) | 2017-11-25 22:43
其他回答(3)
0

ha哈哈哈哈哈哈烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫

乱码问题都是编码问题.把编码方式改对就好.其他的原因不要去考虑

吴瑞祥 | 园豆:29449 (高人七级) | 2017-11-24 11:58

谢谢你的回答。 看了很多网上的问题,基本上都是说编码问题,但是我尝试了很多次 ,把结构体改到函数外部就不会乱码了,就是 不明白这个问题。

支持(0) 反对(0) Andrew_qian | 园豆:236 (菜鸟二级) | 2017-11-24 12:00

@Andrew_qian: 别管什么结构体了.也别管什么里面外面.

你写入的时候肯定是要转成二进制流的.

转的时候使用合适的编码方式就可以

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-11-24 12:01
0

乱码问题都是编码问题.把编码方式改对就好.其他的原因不要去考虑

fcyh | 园豆:568 (小虾三级) | 2017-11-24 14:32

怎么都是这样说啊,那好吧,谢谢啦

支持(0) 反对(0) Andrew_qian | 园豆:236 (菜鸟二级) | 2017-11-24 14:45
0

和我最近遇到的问题差不多,我已经解决了,是输入字符串之后结束符后面的随机字符造成的,可以看看我的博客,https://blog.csdn.net/Z1272633296/article/details/106947174

huiyi1234 | 园豆:202 (菜鸟二级) | 2020-06-24 17:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册