main() 可以做得更多
用户有权修改程序的工作方式。对 GUI 程序来说,可以修改程序的首选项;而对于
categorize 这样的命令行程序,可以传给它命令行参数。
在 C 语言中,需要想办法知道数组的长度,所以 main() 函数有两个参数,argc 的值用来记录数组中元素的个数。
命令行参数可以让程序更灵活,如果用户能调整程序的工作方式,就会觉得程序很有用。
下面就来修改 categorize 程序,让它变得更灵活。用户运行程序时,命令行中第一个参数是程序名。也就是说,第一个命令行参数其实是 argv[1] 。
代码冰箱贴
代码冰箱贴这是修改以后的 categorize 工具,程序从命令行读取搜索关键字和使用的文件,你能否把冰箱贴放到正确的位置?
用以下命令运行程序:
代码冰箱贴解答
代码冰箱贴解答这是修改以后的 categorize 工具,程序从命令行读取搜索关键字和使用的文件,请把冰箱贴放到正确的位置。
用以下命令运行程序:
试驾
好了,我们来试一下新的代码,你需要一个叫 spooky.csv 的测试文件。
运行 categorize 时,要用几个命令行参数告诉它查找哪些关键字以及使用哪些文件名:
程序运行以后,生成了以下文件:
安全检查
在 Head First 实验室,我们从来不会犯错(咳咳)。但是在现实世界,当你在程序中打开文件准备读写时,最好检查一下有没有错误发生。好在如果数据流打开失败,fopen() 函数会返回 0,也就是说如果想检查错误,可以将下面这段代码:FILE *in = fopen("我不存在.txt", "r");
改成这样:FILE *in;if (!(in = fopen("我不存在.txt", "r"))) { fprintf(stderr, "无法打开文件.\n"); return 1;}
Head First 披萨屋耳闻
十个程序有九个需要选项。聊天程序有“系统设置”,游戏有调整难度的选项,而命令行工具需要有命令行选项。
命令行选项是一些小开关,它们经常出现在命令行工具中:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论