米米的博客

做了一点微小的工作

前言

笔者使用的 MacBook Air,硬盘大小为 256G,可用空间约 251G。使用 diskutil list 命令输出的分区表如下:

原分区表

硬盘使用的是 GUID 分区表(GPT),共四个分区,分别是 EFI 引导分区、APFS 的 Mac 主分区(在更新 macOS 10.13 之前为 HFS+)、NTFS 的 Bootcamp 分区以及 Windows Recovery 分区。
在最初安装 Bootcamp 时,考虑到 Windows 系统只是用来运行某些没有 macOS 版本或无法移植到 macOS 的程序(例如《红色警戒 2》),并且 macOS 的空间本身就很紧张,Bootcamp 分区的大小仅分配了 35G。然而,在 8 月中旬昆特牌国服开启公测后,入坑的笔者发现 Bootcamp 分区的大小有些不够用了。

来场昆特牌吧!

笔者首先想到的是调整 Bootcamp 分区的大小,也就是从 APFS 的主分区中划出一部分空间给 Bootcamp。但是,这样做不仅存在破坏分区表的风险,而且 Mac 主分区中已经安装了 Adobe 全家桶、Autodesk Maya、XCode 等程序,256G 的硬盘大小捉襟见肘,并不足以划分出较大的 Bootcamp 分区。于是只得寻求其他解决方案。比较显而易见的思路有:

  • 换个 Mac(笔者现在的 Mac 用了四年多,但新的 Mac 没有了信仰灯和 MagSafe)
  • 换个硬盘(MacBook Air 的闪存是 BGA 封装的,并不能像 SATA 的 SSD 那样直接拆)
  • 装个 SD 卡(高性能大容量的 SD 卡价格感人,并且不适合 NTFS 文件系统)

这些都不是最优解。在综合了各方面的考虑后,最终选定了如下方案:

  • 使用移动硬盘,一个分区做 Win To Go,另一个分区做 Time Machine 备份。其中移动硬盘选择的是西数 Elements 500G。
阅读全文 »

编写 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%