c语言保存后,打开记事本为什么会出现乱码

img

你这个程序保存的是结构体,也就是二进制文件,不能用记事本打开,只能用程序打开才能获取数据。

转成string类型再写入txt中

可能是结构体没有初始化

wb方式保存的,二进制文件,记事本打开自然是乱码。

直接把结构体写入文件是有风险的,如果你的结构体中有char数组,而且没有赋值(或者没有完全赋值,只用了一部分),那么在写文件的时候就会乱码。结构体最好也是一个元素一个元素的写入文件,不要直接用&取结构体元素的地址写入。