软件工程作业个人项目: wc项目,统计文本文件的字符数、单词数和行数。

1、代码来源:

http://www.cnblogs.com/changjiangcheng/p/5304120.html

2、platform: windows VC++

     language: c

3、bug:  换行前的单词结尾需要有' ',',','.','!','?' ';'才能正确计数

4、github: https://github.com/5Mei/wc/blob/master/main.cpp

 

#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==','||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:%s CharNum:%d\n",argv[2],charcalculate);
else if(!strcmp(argv[1],"-w"))
printf("File:%s WordNum:%d\n",argv[2],wordcalculate);
else if(!strcmp(argv[1],"-l"))
printf("File:%s LineNum:%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;

}

转载于:https://www.cnblogs.com/MeiT/p/7594249.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值