米米的博客

做了一点微小的工作

编写 C 语言控制台程序时,如果使用 scanf() 函数作为输入,往往需要解决非法输入的问题。比如以下情况:

1
2
3
printf("输入一个0~9的整数a\n");
int a;
scanf("%d", &a);

此时可能出现如下几种典型的非法输入:

  • 123
  • 123xyz
  • xyz123

对于第一种,使用 if 判断 a 的范围是否满足要求即可。第二种和第三种则较为复杂,因为其中涉及到了字符的输入。第二种情况,scanf() 会将 123 存入 a,而 xyz 留在了输入缓冲区;第三种情况,scanf() 不会读取任何数据,xyz123 都留在了输入缓冲区。
如果只是判断这一次输入的合法性,可以利用 scanf() 的返回值。如果输入有效,scanf() 会返回 1,否则返回 0。由此可以排除 scanf() 无法读取的输入。

阅读全文 »

Power of Logic 是一个推理游戏,玩家的任务是用尽可能少的时间和步骤解开密码序列。当你输入不同的数字序列时,系统会给出提示,指示你输入的数字序列中,有多少个数字正确但位置错误,又有多少个数字和位置都正确。可惜这一游戏已经不再维护和更新了,最新的 iOS 设备上甚至无法下载。不过考虑到它的核心逻辑并不复杂,笔者用 C 语言写了一个低配版。由于能力有限,只借鉴了核心逻辑,没有做图形界面。

运行效果如图:

Power of Logic

下面附上最终版本的代码。

阅读全文 »

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

0%