一.github:https://github.com/JiejieCM/WordCount
二.psp
| PSP2.1 | PSP阶段 | 预估耗时 (分钟) | 实际耗时 (分钟) | 
| Planning | 计划 | 30 | 30 | 
| · Estimate | · 估计这个任务需要多少时间 | 30 | 30 | 
| Development | 开发 | 3天 | 5天 | 
| · Analysis | · 需求分析 (包括学习新技术) | 2天 | 3天 | 
| · Design Spec | · 生成设计文档 | 0 | 0 | 
| · Design Review | · 设计复审 (和同事审核设计文档) | 0 | 0 | 
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 
 | 
 | 
| · Design | · 具体设计 | 
 | 
 | 
| · Coding | · 具体编码 | 
 | 
 | 
| · Code Review | · 代码复审 | 
 | 
 | 
| · Test | · 测试(自我测试,修改代码,提交修改) | 
 | 
 | 
| Reporting | 报告 | 
 | 
 | 
| · Test Report | · 测试报告 | 
 | 
 | 
| · Size Measurement | · 计算工作量 | 
 | 
 | 
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 
 | 
 | 
| 
 | 合计 | 
 | 
 | 
三.解题思路
使用c++,vs2015
基础功能
wc.exe -c file.c //返回文件 file.c 的字符数 wc.exe -w file.c //返回文件 file.c 的单词总数 wc.exe -l file.c //返回文件 file.c 的总行数 wc.exe -o outputFile.txt //将结果输出到指定文件outputFile.txt
统计字符:这个很简单,直接用函数strlen得出。
统计行数:读入文件时,我采用getline逐行读入,循环累加数则为文件行数。
统计单词:单词的统计则稍微复杂一点,这里我设置一个变量flag,用flag对此时读入的是否是单词进行标记,从而进行计数。
[参考]:http://blog.csdn.net/henry19850318/article/details/5929023
【指令读入与分析】
此处利用main函数的参数argv直接传入控制台指令。扫描指令,当遇到“-”时说明此事读入的是指令,然后根据“c”“w”“l”“o”来区分其执行的不同操作,否则读入的则为文件名(输入或者输出文件),从而对文件进行操作。
[参考]:http://blog.csdn.net/henry19850318/article/details/5929023
四.代码分析
设置结构体,判断指令

主要统计函数

主函数

五.测试
六.参考
【1】http://blog.csdn.net/henry19850318/article/details/5929023
【2】http://blog.csdn.net/u010166404/article/details/46353263
