#include<iostream>
#include<fstream>
#include<string>
#include<Windows.h>
using namespace std;
void main()
{
char word[][];
int AllChar = , NoteSize = , Row = , WordSize = ;
char a[], c, file[];
int i = , j = ;
FILE *fp;
cout << "#结束输入" << endl;
cin >> file;
while ()
{
if (file[] == '#')
break;
fp = fopen(file, "r");
if (fp == NULL)
{
cout << "the file:y.txt not found!" << endl;
exit(-);
}
c = fgetc(fp);
AllChar++;
if (c == '/')
{
c = fgetc(fp);
AllChar++;
if (c == '/')
NoteSize++;
}
c = fgetc(fp);
AllChar++;
while (c != EOF)
{
if ((c >= 'a'&&c <= 'z') || (c >= 'A') && (c <= 'Z'))
{
a[i] = c;
c = fgetc(fp);
AllChar++;
i++;
continue;
}
else if (c == '/')
{
c = fgetc(fp);
AllChar++;
if (c == '/')
{
c = fgetc(fp);
AllChar++;
NoteSize++;
continue;
}
}
else
{
if (c == '\n')
{
Row++;
}
if (i != )
{
a[i] = '\0';
strcpy_s(word[j], a);
j++;
i = ;
}
c = fgetc(fp);
AllChar++;
}
}
if (i != )
{
a[i] = '\0';
strcpy_s(word[j], a);
j++;
}
fclose(fp);
WordSize = j;
cout << "行数:" << Row << endl;
cout << "字符数:" << AllChar << endl;
cout << "单词数:" << WordSize << endl;
cout << "注释行:" << NoteSize << endl;
cin >> file;
}
}

项目要求

1.统计文本文件的字符数、单词数和行数

2.要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数

3.扩展功能为统计注释行数。

4.可以统计多个文件,文件名称由用户输入。

这次作业是统计一个文件中有多少单词,字符和有多少行,之前C++学的不是很好,所以这次为了加强自己C++语言的运用,所以用C++进行编程设计

我提前在D盘里准备了一个记事本a,通过程序显示出记事本a里有的单词数,字符数和行数

除了单词字母算字符外,所有的符号、空格,包括回车都要算到字符数里

因为VS2013里没有“fopen”的定义,所以需要进行宏定义,点开“项目”、“属性”

在预处理器定义中写入_CRT_SECURE_NO_WARINGS,宏定义成功,就能运行程序了

程序运行截图

输入记事本的路径,以回车结束,就会显示结果

第一次配置git,然后上传到coding里,配置很麻烦,但在同学的帮助下成功上传,自己上传还不是很熟,相信通过多次软件工程作业,我会很熟练的运用git上传程序

实践简单的项目WC的更多相关文章

  1. 个人项目-wc

    个人项目-WC   (C语言) 一.Github地址:https://github.com/Lin-J-F/WC 二.PSP表格 PSP2.1 Personal Software Process St ...

  2. 软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇

    续:软件项目量化管理(CMMI高成熟度)实践经验谈--之概述篇 二.项目管理过程 软件开发项目管理过程,从项目全视角来看,分为售前.售中.售后等三个大的阶段.本文所谈的是售中阶段项目管理过程,在售中阶 ...

  3. 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)

    github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...

  4. python编程从入门到实践 alien invasion 项目源码

    现在上传一个 python编程从入门到实践 alien invasion 项目源码 以供大家学习参考 跟官方版本可能不太一样,因为是自己写的 也算是给新手一个参考 我用的环境是pycharm 可能需要 ...

  5. Intellij创建简单Springboot项目

    Intellij创建简单Springboot项目 第一步:选择创建新项目——file-new-project 第二步:选择项目类型——Spring Initializr-next 第三步:输入项目信息 ...

  6. Hibernate入门2.简单的项目开发实例

    Hibernate入门2.简单的项目开发实例 这一节通过一个简单的项目学习Hibernate项目的配置 代码下载 : 链接: http://pan.baidu.com/s/1zlgjl 密码: p34 ...

  7. Ant—使用Ant构建简单Java项目(三)

    博客<Ant-使用Ant构建简单Java项目(二)>我们简化了运行Test类中main方法须要运行的命令,本博客来介绍一下如何使build.xml文件和当中使用property标签定义的属 ...

  8. javaWEB简单商城项目

    javaWEB简单商城项目(一) 项目中使用到了上一篇博文的分页框架,还有mybatis,重点是学习mybatis.现在有些小迷茫,不知道该干啥,唉,不想那么多了,学就对了 一.项目功能结构 1.功能 ...

  9. vue-cli安装以及创建一个简单的项目(一)(Node\npm\webpack简单使用)

    1.关系介绍 1.简单的说 Node.js 就是运行在服务端的 JavaScript. 2.NPM是随同NodeJS一起安装的包管理工具(新版的nodejs已经集成了npm),能解决NodeJS代码部 ...

随机推荐

  1. [Hive_add_2] Hive 数据类型

    Hive 数据类型 正常数据类型 # 整型,4个字节 int # 大整型,8个字节 bigint # 字符串,最大长度2G String 复杂数据类型 # 数组,相同类型元素的数组 array< ...

  2. Nginx:413 Request Entity Too Large

    现象:在 Post 文件的时候遇到413 错误 :Request Entity Too Large: 原因:Nginx 限制了上传文件的大小,需在Nginx中修改/增加允许的最大文件大小: 操作:编辑 ...

  3. HTTP协议响应码及get请求和post请求比较

    HTTP协议响应码 1XX:信息响应类,表示接收到请求并且继续处理 2XX:处理成功响应类,表示动作被成功接受.理解和接受 200 OK:表示从客户端发来的请求在服务器端被正常处理了 204 No C ...

  4. golang文件相对路径问题

    目录结构: --simple --data --data.json --search --feed.go 具体代码: const dataFile = "../data/data.json& ...

  5. laravel 使用构造器进行增删改查

    使用原生语句进行增删改查 //$list = DB::select('select * from wt_category where id = :id', ['id' => 34]); //$i ...

  6. (6)sudo命令详解(每周一个linux命令系列)

    首先说句抱歉,最近事情比较复杂,停更了一阵子.我又回来啦 多用户管理 我们常用的windows个人系统虽然可以设置多用户,但是实际上是不可以多用户同时登陆的(这个我实验过,我以前用windows服务器 ...

  7. [luogu 5300][bzoj 5502] [GXOI/GZOI2019] 与或和

    题面 思路还是挺容易想的, 只是由于我还是太\(naive\)了一点不会做只会打暴力吧...... 题目要我们求所有子矩阵的\(and\)值之和与\(or\)值之和, 一看之下似乎不好入手, 我们慢慢 ...

  8. ES5与ES6对比

    ES5与ES6对比 1. 模块引用 1.在ES5里,引入React包基本通过require进行,代码类似这样: // ES5 var React = require('react'); var { C ...

  9. 201904Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptors

    论文标题:Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptor ...

  10. ASP 基础一 基本语法

    一 声明变量 二 给变量赋值 三 循环 四 case <html> <head title="test hello world"> </head> ...