C语言 生成随机数存入文件,读取文件数字的bug
如果心急,可以直接点解决方法
背景介绍
先介绍下背景:
我现在分别生成10000个,30000个,50000个随机数,将其存入txt文件中,分别命名为1w,3w,5w。
函数分别命名为save和load。
相应主函数的调用
现在从这个三个文件中读取数字存到三个相应的数组里。
打印出来看数组生成的数字的情况
问题
很奇怪的来了!!!前方高能!!!
当读取1w数据量的文件时,对应的数组前几千个都没有异常值
但一到末尾:(1w数据图)
出现了很奇怪的大数。
当读取3w数据量的文件时,同样如此,不过异常值全是0(3w数据图)
当读取5w数据量的文件时,也一样,异常值也是0,但比3w的少(5w数据图)
第一想法肯定是:“是不是生成数据写入文件的时候出问题了?”
回去查看存储的txt文件,以1w为例
划到最后一看,发现数据并没有问题?!
所以下意识认为问题在load函数那。各种在load函数上的探索性改动都没有解决这个问题
解决方法
突发奇想问题会不会在save函数那里?
对save函数审视了许久,突然想到我打开文件进行写入后,并没有关掉这个文件
于是加上了一行fclose(fp)
再次打印数字
正常了!!!!!!喜大普奔
虽说我也不知道为什么这样能解决问题
但总结一点:打开文件后记得关闭文件!
fclose(文件指针)