我在用C语言写一个实验室管理系统的时候,(其实就是一个简单的控制台界面),功能是把用户输入的信息写入txt文件中。
首先把用户输入的信息保存在一个结构体中,然后通过fwrite把结构体中的数据一次性写入文件中。但是我发现,当我在函数内部定义结构体变量的时候,写入到文件中的数据包含乱码,并不全是乱码,结构体中数组没有数据的地方在txt文件中是乱码。但是当我把结构体定义在所有函数外部的时候,写入到txt文件中就没有乱码,很正常。想了好久也不知道怎么回事。请问这是为什么?也就是结构体定义在函数内部和外部有什么区别?乱码是怎么回事?不胜感激!
是你结构体没初始化的问题吧
恩恩。就是这个问题。我把结构体初始化后就不会有乱码问题了。谢谢你的回答。还是想问一下,为什么定义在函数内部不初始化的话会乱码,在全局定义的话不初始化就没事。这是为什么呢?
@Andrew_qian: 全局变量是默认初始化的,局部变量要自己初始化
@秋壶冰月: 恩,好的,明白了,十分感谢!
ha哈哈哈哈哈哈烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫
乱码问题都是编码问题.把编码方式改对就好.其他的原因不要去考虑
谢谢你的回答。 看了很多网上的问题,基本上都是说编码问题,但是我尝试了很多次 ,把结构体改到函数外部就不会乱码了,就是 不明白这个问题。
@Andrew_qian: 别管什么结构体了.也别管什么里面外面.
你写入的时候肯定是要转成二进制流的.
转的时候使用合适的编码方式就可以
乱码问题都是编码问题.把编码方式改对就好.其他的原因不要去考虑
怎么都是这样说啊,那好吧,谢谢啦
和我最近遇到的问题差不多,我已经解决了,是输入字符串之后结束符后面的随机字符造成的,可以看看我的博客,https://blog.csdn.net/Z1272633296/article/details/106947174