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> ...
随机推荐
- Ubuntu14 下安装jdk1.8
1.oracle官网下载jdk-8u45-linux-i586.gz 此为32位 2.放在任意目录下,如/home/hongxf 3.直接解压该文件 sudo tar -xvf jdk-8u45-li ...
- RabbitMQ事务确认机制(生产者)
消息确认机制 生产者 消费者 消费者如何确保消息一定消费成功 队列和消费者建立长连接,推送或者拉取形式. 消费者通过自动应答或者手动应答,队列服务器等待应答结果,如果没有应答结果那么保留给下一个消费者 ...
- 算法(Algorithms)第4版 练习 1.5.2
0 1 2 3 4 5 6 7 8 9 10 components 9 0 0 1 2 3 4 5 6 7 8 9 components 3 4 0 1 2 4 5 6 7 8 0 8 compone ...
- python第九篇:Python进程
Python进程 接下来我主要按照下图中思维导图上的关键点对进程和线程进行一个总结 进程知识点总结: 一.Python进程 1.概念 程序和进程: 程序:是可执行文件,是静态的,占据磁盘空间,程序 ...
- codeforces 633B B. A Trivial Problem(数论)
B. A Trivial Problem time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- DFS的简单应用(zoj2110,poj1562)
zoj2110 简单的dfs应用,注意have数组的处理 #include<iostream> #include<cstdio> #include<cstdlib> ...
- 【leetcode刷题笔记】Best Time to Buy and Sell Stock III
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- 【leetcode刷题笔记】Integer to Roman
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- Gym 100801B Black and White(构造)
题意:给定X,Y,分别表示由'.'和'@'组成的连通块的个数. 思路:假如X<Y,我们用两部分来构造这个结果,第一部分由一个'.'连通块和Y-(X-1)割'@'连通块组成,第二个部分由X-1个' ...
- 《Javascript高级程序设计》阅读记录(一):第二、三章
<Javascript高级程序设计>阅读记录(一) 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释 ...