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;

    }

  • 相关阅读:
    Tableau(数据抽取)
    Oracle
    Visual Studio 2015与C#6.0新特性
    .net/c# memcached 安装和基本使用
    .net/c# memcached 获取指定前缀缓存键(keys)
    【笔记】Head First 设计模式
    C# WinForm 导出导入Excel/Doc [使用Aspose.Cells.dll]
    【转】《WCF服务编程 第一章 WCF基础》第一回
    WCF 部署到IIS(最基本的配置)
    串口通信(基础)
  • 原文地址:https://www.cnblogs.com/MeiT/p/7594249.html
Copyright © 2011-2022 走看看