C语言实现wc项目
该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项目的更多相关文章
- 软件工程wc项目,基于py
###WC项目文件链接:https://github.com/ILTHEW/wc.git 个人项目:WC 实践是理论的基础和验证标准,希望读者贯彻"做中学"的思想,动手实现下面的项 ...
- C语言实现wc基本功能
GitHub地址:https://github.com/hhx007/wc 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数. 这个项目要求写一个命令行程序,模仿已有w ...
- 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序
软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...
- WinForm多语言版本实战项目演练
一.课程介绍 关于如何实现“WinForm多语言版本”网上有很多实现技术方案,可以说是“琳琅满目”,"包罗万象".俗话说的好:一千个读者就有一千个哈姆雷特!如果您工作中恰好也遇到这 ...
- 手把手和你一起实现一个Web框架实战——EzWeb框架(二)[Go语言笔记]Go项目实战
手把手和你一起实现一个Web框架实战--EzWeb框架(二)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 上一篇文章我们实现了框架的雏形,基本地 ...
- 手把手和你一起实现一个Web框架实战——EzWeb框架(三)[Go语言笔记]Go项目实战
手把手和你一起实现一个Web框架实战--EzWeb框架(三)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 本篇代码,请选择demo3 这一篇文章 ...
- 手把手和你一起实现一个Web框架实战——EzWeb框架(四)[Go语言笔记]Go项目实战
手把手和你一起实现一个Web框架实战--EzWeb框架(四)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 这一篇文章主要实现路由组功能.实现路由 ...
- 手把手和你一起实现一个Web框架实战——EzWeb框架(五)[Go语言笔记]Go项目实战
手把手和你一起实现一个Web框架实战--EzWeb框架(五)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 本篇代码,请选择demo5 中间件实现 ...
- 作业三:WC项目
WC一个简单的文件检测系统 用c语言实现 不多说 上代码 #include<stdio.h> #include<stdlib.h> #include <io.h> ...
随机推荐
- web应用组成结构,web.xml的作用
- SQLServer 一些有用的语句
SET STATISTICS TIME ON 记录查询的相关数据 生成随机Guid SELECT NewID() 按照某一列排序并生成序号 select Row_Number() OVER (ORDE ...
- orcal操作锦集
更新时间:update qs_settle_dt_cfg set end_date=to_date('9999-12-31','yyyy-MM-dd');查询时间:select to_char( e ...
- io.js的六大新特性
io.js是nodejs的友好版的分支("friendly fork”).它支持npm中所有的同样模块,且使用了v8最新版本的截取(v8是被node.js使用js解释器),且修复了很多的bu ...
- eclipse导入java web项目,项目出现红叉而其他地方没有红叉的问题解决方法
eclipse导入别人的Java web项目时会出现这种情况:仅项目名出现红叉而其他地方没有红叉的问题.这可能是以下几种情况导致的,其解决方法如下: 1.导入项目之前,请确认工作空间编码已设置为utf ...
- performance.timing检测页面加载速度
with(performance){ readyStart = timing.fetchStart - timing.navigationStart; redirectTime = timing.re ...
- ACM学习历程—51NOD1028 大数乘法V2(FFT)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1028 题目大意就是求两个大数的乘法. 但是用普通的大数乘法,这 ...
- POJ2559:Largest Rectangle in a Histogram
浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:http://poj.org/problem?id=2559 贪心的想,最大的子矩阵顶部 ...
- 洛谷 2822 组合数问题——质因数有关的dp
题目:https://www.luogu.org/problemnew/show/P2822 发现 k 都是一样的.所以可以设dp[ i ][ j ]表示 n<=i,m<=j 的答案.发现 ...
- 洛谷 P4220 & UOJ #347 通道 —— 随机化
题目:https://www.luogu.org/problemnew/show/P4220 http://uoj.ac/problem/347 先写了一下 n^2 和三棵树一样的情况,n^2 还写了 ...