zoukankan      html  css  js  c++  java
  • 软件工程作业个人项目: 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! ");
    exit(-1);
    }
    while(!feof(fp))
    {
    a=fgetc(fp);
    if(a!=' '&&a!=' '&&a!=' '&&a!=','&&a!='.'&&a!='!'&&a!=';'&&a!='=')
    charcalculate++;
    if(a==' '||a==','||a=='.'||a=='!'||a=='?'||a==';')
    wordcalculate++;
    if(a==' '||a==' ')
    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 ");
    scanf("%s%s%s",argv[0],argv[1],argv[2]);
    continue;
    }
    else if(!strcmp(argv[1],"-c"))
    printf("File:%s CharNum:%d ",argv[2],charcalculate);
    else if(!strcmp(argv[1],"-w"))
    printf("File:%s WordNum:%d ",argv[2],wordcalculate);
    else if(!strcmp(argv[1],"-l"))
    printf("File:%s LineNum:%d ",argv[2],linecalculate);
    else if(!strcmp(argv[1],"exit"))
    {
    printf("Exit! ");
    break;
    }
    else
    printf("NullPoint ");
    printf(" ");
    scanf("%s%s%s",argv[0],argv[1],argv[2]);
    }
    return 0;

    }

  • 相关阅读:
    利用Vista新技术WCF开发构建服务系统
    WCF开发入门的六个步骤
    C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(一)让物体动起来①
    silverlight
    初探C#3.0
    通过托管代码和 Windows Vista 智能卡 API 来保护您的数据
    用例图
    类图
    Win7下MSN显示两个窗口问题
    设计模式初探
  • 原文地址:https://www.cnblogs.com/MeiT/p/7594249.html
Copyright © 2011-2022 走看看