1>首先是一条警告:incompatible implicit declaration of built-in function 'exit',添加#include <stdlib.h>即可解决;
2>然后编译无误后,运行会发现每次输入一个值退出switch选择后再到while执行printscreen函数,之后会在用户没额外输入值的情况下执行了switch的default语句。用户没有额外输入按理说应该会卡在那里等待输入才对,那么既然他往下执行了说明有值给了scanf且不是1、2,、3、4的值,那只能是执行default,所以每次都会输出“输入有误”。那到底是给了scanf什么值呢?我把default改了一下printf("order = %d\n", order);发现order的是10,查了下ASCII码表发现10代表换行,好了明白了,是因为结束switch循环后在执行scanf的时候在用户没有输入值的情况下其实scanf接受了键盘缓存的换行符那么自然会执行default语句了,哈哈哈;
3>另外,exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS(操作系统),这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出,非0 为非正常退出。不过这里在main函数下调用效果确实和上面darewolf提到的一样,和 return 1; 差不多。
好了我能看出的就这些了,其他问题继续交流哈 |