该World Count项目用的是C语言编写,只实现了-c、-w、-l、三个功能,由于简单全部代码均由小编自己编写,用的是VS2013只支持windows平台cmd运行。

  木有图形界面,参考了Linux系统中的操作方式,即除了可以直接运行.exe程序外,还可以在cmd下输入如:wc.exe [file] -c的带参数方式通过main函数的参数接收来运行。

  功能

  1.直接运行,提示输入文件路径,显示三个功能即字符、单词、行数。

  2.在cmd下输入,如果参数只有两个则要提示用户需要的功能(-c、-w、-l),若是三个参数则通过strcmp()判断中间的字符来显示相应的功能。

  不足之处:

    拓展功能还未实现,一味的自己打代码,未有效的利用资源,参考已有的代码。

  项目源码:

 #include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main(int argc, char * argv[])
{
int wc_char = ;
int wc_word = ;
int wc_line = ;
char filename[];
FILE *fp = NULL;
if (argc == )
{
printf("missing file name:\nPlease input file name:");
gets(filename);
fp = fopen(filename, "r");
if (fp == NULL)
{
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit();
//...
}
printf("This is the file :\n");
while ()
{
char ch;
ch = fgetc(fp);
if (ch >= 'A'&&ch <= 'z')
{
putchar(ch);
wc_char++;
}
else if (ch == ' ')
{
putchar(ch);
wc_word++;
}
else if (ch == '\n')
{
putchar(ch);
wc_word++;
wc_line++;
}
else if (ch = EOF)
{
break;
}
}
printf("The char count is %d\n", wc_char);
printf("The word count is %d\n", wc_word);
printf("The line count is %d\n", wc_line);
fclose(fp);
_getch();
exit();
}
else if (argc == )
{
fp = fopen(argv[], "r");
if (fp == NULL)
{
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit();
//...
}
while ()
{
char ch;
ch = fgetc(fp);
if (ch >= 'A'&&ch <= 'z')
{
wc_char++;
}
else if (ch == ' ')
{
wc_word++;
}
else if (ch == '\n')
{
wc_word++;
wc_line++;
}
else if (ch = EOF)
{
break;
}
}
printf("文件打成功!\n请输入统计方式如(-c\-w\-l):");
gets(filename);
if (strcmp(filename, "-c") == )
{
printf("The char count is %d\n", wc_char);
}
else if (strcmp(filename, "-w") == )
{
printf("The word count is %d\n", wc_word);
}
else if (strcmp(filename, "-l") == )
{
printf("The line count is %d\n", wc_line);
}
}
else if (argc == )
{
fp = fopen(argv[], "r");
if (fp == NULL)
{
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit();
//...
}
while ()
{
char ch;
ch = fgetc(fp);
if (ch >= 'A'&&ch <= 'z')
{
wc_char++;
}
else if (ch == ' ')
{
wc_word++;
}
else if (ch == '\n')
{
wc_word++;
wc_line++;
}
else if (ch = EOF)
{
break;
}
}
if (strcmp(argv[],"-c")==)
{
printf("The char count is %d\n", wc_char);
}
else if (strcmp(argv[],"-w")==)
{
printf("The word count is %d\n", wc_word);
}
else if (strcmp(argv[],"-l")==)
{
printf("The line count is %d\n", wc_line);
}
fclose(fp);
}
}

  本项目源代码上传至个人的GitHub:https://github.com/BelieveMyself-ZLH/wc

C语言实现wc项目的更多相关文章

  1. 软件工程wc项目,基于py

    ###WC项目文件链接:https://github.com/ILTHEW/wc.git 个人项目:WC 实践是理论的基础和验证标准,希望读者贯彻"做中学"的思想,动手实现下面的项 ...

  2. C语言实现wc基本功能

    GitHub地址:https://github.com/hhx007/wc 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数. 这个项目要求写一个命令行程序,模仿已有w ...

  3. 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序

    软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...

  4. WinForm多语言版本实战项目演练

    一.课程介绍 关于如何实现“WinForm多语言版本”网上有很多实现技术方案,可以说是“琳琅满目”,"包罗万象".俗话说的好:一千个读者就有一千个哈姆雷特!如果您工作中恰好也遇到这 ...

  5. 手把手和你一起实现一个Web框架实战——EzWeb框架(二)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(二)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 上一篇文章我们实现了框架的雏形,基本地 ...

  6. 手把手和你一起实现一个Web框架实战——EzWeb框架(三)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(三)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 本篇代码,请选择demo3 这一篇文章 ...

  7. 手把手和你一起实现一个Web框架实战——EzWeb框架(四)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(四)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 这一篇文章主要实现路由组功能.实现路由 ...

  8. 手把手和你一起实现一个Web框架实战——EzWeb框架(五)[Go语言笔记]Go项目实战

    手把手和你一起实现一个Web框架实战--EzWeb框架(五)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 本篇代码,请选择demo5 中间件实现 ...

  9. 作业三:WC项目

    WC一个简单的文件检测系统 用c语言实现 不多说 上代码 #include<stdio.h> #include<stdlib.h> #include <io.h> ...

随机推荐

  1. Linux 上关于iptables

    有几个命令: 1.service iptables staus   2.service iptables start    3.service iptables restart   有个配置文件/ec ...

  2. Centos安装ntfs

    ntfs优盘插在Linux上是无法直接使用的,需要安装ntfs插件才可使用 centos上安装ntfs-3g 下载ntfs-3g安装包,上传至需要安装的服务器并解压 cd 进入ntfs-3g目录,依次 ...

  3. EF学习 开始操作02

    历史版本和未来版本 本文介绍有关实体框架 (EF5) 最新版本的信息,其中大部分内容也适用于旧版本.有关完整版本列表以及各版本引入的功能的详细信息,请参阅 “版本历史”. “历史版本”页面包含实体框架 ...

  4. GridView设置多个DatakeyNames

    1.aspx页面GridView直接绑定DataKeyNames aspx设置: <asp:GridView ID="grvGrid" runat="server& ...

  5. linux-常用指令3

    系统管理命令 stat              显示指定文件的详细信息,比ls更详细 who               显示在线登陆用户 whoami          显示当前操作用户 host ...

  6. Java钉钉开发_02_免登授权(身份验证)

    源码已上传GitHub: https://github.com/shirayner/DingTalk_Demo 一.本节要点 1.免登授权的流程 (1)签名校验 (2)获取code,并传到后台 (3) ...

  7. xxx was built without full bitcode" 编译错误解决

    xxx was built without full bitcode" 编译错误解决 iOS 打包上线 All object files and libraries for bitcode ...

  8. Convolutional Neural Networks for Visual Recognition 8

    Convolutional Neural Networks (CNNs / ConvNets) 前面做了如此漫长的铺垫,现在终于来到了课程的重点.Convolutional Neural Networ ...

  9. 【遍历二叉树】02二叉树的中序遍历【Binary Tree Inorder Traversal】

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 给定一个二叉树,返回他的中序遍历的 ...

  10. 关于对H264码流的TS的封装的相关代码实现

    1 写在开始之前 在前段时间有分享一个H264封装ps流到相关文章的,这次和大家分享下将H264封装成TS流到相关实现,其实也是工作工作需要.依照上篇一样,分段说明每个数据头的封装情况,当然,一样也会 ...