然而这是很简单的,最难的是逻辑错误,即编译可以通过,而运行结果是错误的,和你预想的不一样,而这种错误很难查找,只能用分步式运行,一行一行跟着程序执行看结果和过程,才能检测出来。通常程序员最难解决的错误就是这种逻辑错误。
自己好好看看程序吧,别依靠编译器,编译器不是万能的!1.语法错误
在编译前浏览程序的粗举源代码看看是否有明显的错误。
可以查看由编译器发现的错误。
发现错误——从第一个开始修改,每次修改正饥1~2个,然后重现编译。
发现的错误位置可能比真正的错误要滞后一行。
2.语义错误
比较程序实际得到的结果和预期结果。
跟踪程序,执行步骤——可用EXCEL(语句行×变量值)
在岩清碧程序的几个关键点处加入额外的printf()语句以监视所选变量的值。
或用调试器。
while(!feof(f_pic)){
ch=fgetc(f_pic)
fputc(ch,f_finish)
}
fclose(f_pic)
while(!feof(f_pic))
{
ch=fgetc(f_file)
fputc(ch,f_finish)
}
这两个,!feof()判断是有问题的。
当文件刚刚读到文件尾时,feof不会返回true。只有在文件尾部再次进行一次并敏读 *** 作桐迹,feof才会返回真局蔽并。
ch = fgetc(f_file)
while(!feof(f_pic))
{
fputc(ch,f_finish)
ch=fgetc(f_file)
}
换成这样的就可以了。
LZ可以看下feof的问题
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)