WC项目要求

  这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数、单词数和行数。给实现一个统计程序,它能正确统计程序文件的字符数、单词数、行数,以及其他扩展功能,并能够快速的处理多个文件。

用户需求

  程序员处理需求的模式为:wc.exe [paramter][file_name]

  各个参数的意义:

  基本功能列表:wc.exe -c file.c:char count;

         wc.exe -w file.c:char count;

         wc.exe -l file .c:line count;

  扩展功能:-s 递归处理目录下符合条件的文件

       -a 返回高级选项(代码行、空行、注释行)

        空行:本行全部是空格或者格式控制字符,如果包括代码,则只有不超过一个可显示的字符,例如“}”

        代码行:本行包括多于一个字符的代码。

        注释行:本行不是代码行,并且本行包括注释,例如:}//注释。这种情况下,这一行属于注释行。

        [file_name]:文件的目录名,可以处理一般通配符。

        文本文件,确定字/词/句

  高级功能:-x参数 这个参数单独使用,如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等信息。

需求举例:wc.exe -s -a *.c  返回当前目录、子目录所有.c文件的代码行数,空行数,注释行数。

#include "stdio.h"
#include "string.h"
#include "stdlib.h" int charcalculate=0; int wordcalculate=0; int linecalculate=0; void calculate(char * file)
{
FILE * fp;
char a;
if((fp=fopen(file,"r"))==NULL)
{
printf("read file failed!\n");
exit(-1);
}
while(!feof(fp))
{
a=fgetc(fp);
if(a!=' '&&a!='\n'&&a!='\t'&&a!=','&&a!='.'&&a!='!'&&a!=';'&&a!='=')
charcalculate++;
if(a==' '||a=='\n'||a=='\t'||a==','||a=='.'||a=='!'||a=='='||a==';')
wordcalculate++;
if(a=='\n'||a=='\t')
linecalculate++;
}
linecalculate++;
charcalculate--;
fclose(fp);
} int main(int argc, char* argv[])
{
FILE *fp; calculate(argv[2]);
while(1)
{
if((fp=fopen(argv[2],"r"))==NULL)
{
printf("FileNull\n\n\n");
scanf("%s%s%s",argv[0],argv[1],argv[2]);
continue;
}
else if(!strcmp(argv[1],"-c"))
printf("File:%sCharNum:%d\n",argv[2],charcalculate);
else if(!strcmp(argv[1],"-w"))
printf("File:%sWordNum:%d\n",argv[2],wordcalculate);
else if(!strcmp(argv[1],"-l"))
printf("File:%sLineNum:%d\n",argv[2],linecalculate);
else if(!strcmp(argv[1],"exit"))
{
printf("Exit!\n");
break;
}
else
printf("NullPoint\n");
printf("\n\n");
scanf("%s%s%s",argv[0],argv[1],argv[2]);
}
return 0; }

  这个程序我分了两部分,一部分是主函数,负责打开对应文件和执行对应的命令。另一部分是计数部分,根据所发命令输出对应的统计结果。

下面是我程序的执行结果。对应的TXT是随便在电脑里找的readme文件。

wc 统计程序的更多相关文章

  1. “人向猿进阶”之软件工程第三课----WORDCOUNT.EXE统计程序

    ---恢复内容开始--- WC项目要求 这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数.单词数和行数.给实现一个统计程序,它能正确统计程序文件 ...

  2. 个人项目 源程序特征统计程序(C++)

    零.GitHub地址 https://github.com/King-Authur/Word-count 一.项目的相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这 ...

  3. 使用 python 实现 wc 命令程序的基本功能

    这里使用了 python 的基本代码实现了 Linux 系统下 wc 命令程序的基本功能. #!/usr/bin/env python #encoding: utf-8 # Author: liwei ...

  4. c++英文单词频度统计程序

    英文单词频度统计程序(c++版) 写一个程序,分析一个文本文件(英文文章)中各个次出现的频率,并且把频率最高的十个词打印出来. 分析过程: (1)  简单设想大致分为两大步骤: 1.经过文本文件的读操 ...

  5. C# 统计程序执行时间

    随便写写,小马哥勿怪 最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.     话说马云年轻的时候也是屌丝一枚,有图为证 现 ...

  6. CodeIgniter框架开发的统计程序源代码开放

    文章来源: PHP开发学习门户 自己初学php时,用CodeIgniter框架开发的后台统计程序源代码 程序部分页面如图: 具体配置及下载源代码:http://bbs.phpthinking.com/ ...

  7. Mapreduce的序列化和流量统计程序开发

    一.Hadoop数据序列化的数据类型 Java数据类型 => Hadoop数据类型 int IntWritable float FloatWritable long LongWritable d ...

  8. YTU 2626: B 统计程序设计基础课程学生的平均成绩

    2626: B 统计程序设计基础课程学生的平均成绩 时间限制: 1 Sec  内存限制: 128 MB 提交: 427  解决: 143 题目描述 程序设计基础课程的学生成绩出来了,老师需要统计出学生 ...

  9. wc 统计文件的行数

    1.命令功能 wc 统计文件的行数,单词和字节数 2.语法格式 wc  option  file wc  option  --files0-from=F 参数说明 参数 参数说明 -c 统计字节数 - ...

随机推荐

  1. c++ 智能指针、函数指针和指针函数

    智能指针: 1.内存泄漏memory leak :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出. 2.内存溢出 out of me ...

  2. 【转】SVN branches trunk 合并 讲解

    转自:http://blog.csdn.net/e3002/article/details/21469437 使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到 ...

  3. 深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)

    序列化概述: 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象 ...

  4. MySQL(六)创建用户与授权

    转载自:MySQL创建用户与授权 目录 一.创建用户 二.授权 三.设置和更改用户密码 四.撤销用户权限 五.删除用户 一.创建用户 命令: CREATE USER 'username'@'host' ...

  5. haproxy [WARNING] 312/111530 (17395) : config : 'option forwardfor' ignored for frontend 'harbor_login' as it requires HTTP mode.

    1.经过调查, 2down voteaccepted x-forwarded-for is an HTTP header field, so has nothing to do with the tr ...

  6. python json 解析

    Encode过程,是把python对象转换成json对象的一个过程,常用的两个函数是dumps和dump函数. dic1 = {'type':'dic1','username':'loleina',' ...

  7. day50

    JS基础 一.JS语言介绍 1.概念 浏览器脚本语言 可以编写运行在浏览器上的代码程序 属于解释性.弱语言类型编程语言 2.组成 ES语法:ECMAScript.主要版本ES5和ES6 DOM:文档对 ...

  8. odoo之自动生成编号问题

    单独的seq.xml文件 <?xml version="1.0" encoding="utf-8"?><openerp> <dat ...

  9. RESTful API设计概要

    一.简介 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fiel ...

  10. 20155203 杜可欣《网络对抗技术》Exp1 PC平台逆向破解

    1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,ge ...