该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

最新文章

  1. Java的四种内部类
  2. IOS 设置导航栏
  3. Atitit atiuse软件系列
  4. db2实例、数据库、表空间
  5. Vimer的福音 新时代的Vim C++自动补全插件 clang_complete
  6. Struts2 实战(一)
  7. I/O流的学习
  8. 分享:根据svg节点对象类型和路径值转换坐标值
  9. 对vpn的认识
  10. 【剑指offer】面试题44:扑克牌的顺子
  11. Nginx访问限速配置方法详解
  12. PHP入门怎么选?大学生适合学习吗?
  13. css文字超出一行用点表示
  14. MySQL基础知识-安装MySQL
  15. weex 学习: 添加图标(使用阿里吧吧-icon)
  16. 用python一步一步教你玩微信小程序【跳一跳】
  17. Vue下载页面显示内容
  18. Python入门-用户登录程序升级版
  19. MyEclipse 10 + OsChina GIt项目托管
  20. 廖雪峰Java5集合-2List-2编写equals方法

热门文章

  1. 双向链表(C++实现)
  2. The Quantum L3 router and floating IPs
  3. js 处理移动端触摸事件
  4. JQuery表单验证插件EasyValidator
  5. codeforces 631C C. Report
  6. Agc012_E Camel and Oases
  7. javascript获取窗口位置、绝对位置、事件位置等
  8. LuoguP4383 [八省联考2018]林克卡特树lct
  9. 白话算法(6) 散列表(Hash Table)从理论到实用(上)
  10. Maven(2)-坐标和依赖