C++图书信息管理系统读写文件后 有一段乱码是怎么回事

如图,在输入图书后显示没有乱码,但在退出程序再打开再显示就会出现一段乱码 ,为什么?

因为你的数据没保存吧?
你退出程序后,你刚才输入的数据就丢失了(不可能说你程序都退出了,人家还要开着空间给你存着数据吧?)。再次打开程序,只有再次输入数据才行。
如果要每次打开程序,输入的数据都保存下来,再次打开能够显示。那么,你应该将数据保存在文件里或者数据库中。追问

我肯定保存了啊。。。。。。这是我写在下面的保存的函数啊

我现在问的是为什么输出上次保存的数据时会多出一段乱码啊。。。。。

追答

那你每次退出后有打开文件检查过吗?数据是否正常保存了?
如果确实保存的数据没问题,那就可能是读取时问题。
你while里的book是什么类型?结构体?

追问

额,其实 不知道为什么 保存的数据里也会多一段乱码

追答

不用着急,一点点找问题。
说明是保存时的问题咯。
可能是你保存的时候保存的数据格式有问题,比如你以字符数组保存输入的数据时,是否有\0结尾?你可以调试着看数据。

追问

我是用的strcpy函数将输入的字符加到字符数组里存放,这样不行吗?并且我在写数据到文件时有 如果书籍的编号不等于0才写进文件里的语句,那这样为什么都会有乱码呢?

追答

如果怀疑是addbook函数有问题,
你可以打印出此时的保存数据吧,比如如上的name,保存后是否正常啊,printf()打印出来看。

追问

我在保存后当即显示是没问题的,退出程序再进去显示就会有乱码了= =

解决了= =谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-05
编码格式不对追问

能否具体点,本人编码菜鸟一枚啊。。。

相似回答
大家正在搜