#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. windows7下的一个好玩的,你绝对不知道

    今天学到了一个好东西,分享一下, windows7系统测试是可以的,其他系统暂时没测试,分享给大家玩玩: 在桌面新建一个文件夹: 文件夹重命名为:GodMode.{ED7BA470-8E54-465E ...

  2. 用js实现随机选取10–100之间的10个数字,存入一个数组,并排序

    var iArray = []; function getRandom(istart, iend) { var iChoice = iend - istart + 1; //加1是为了取到100 va ...

  3. Ajax进阶

    "POST":请求 POST请求:(一共三个方法)<!DOCTYPE html><html lang="en"><head> ...

  4. 全栈JavaScript之路( 二十二 )IE 专有扩展——文档模式

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/hatmore/article/details/37611911 ie8 引入了一个新的概念.&quo ...

  5. Win平台阅读Kafka源码时候使用bat脚本时候报错以及解决方案

    问题1: 使用bat脚本报错: 解决方案: 在配置好kafka的server.properties文件后,cmd进入命令窗口输入命令:.\bin\windows\kafka-server-start. ...

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

    (4)top详解 (每周一个linux命令系列) linux命令 top详解 引言:今天的命令是用来看cpu信息的top top 我们先看man top top - display Linux pro ...

  7. 【js】数组的splice方法和slice方法的区别

    1.splice方法和slice都是数组的方法 2.splice方法有3种作用 例如,arr=[1,2,3,4,5,6]; splice方法 删除  arr.splice(1, 1); 返回值为删除的 ...

  8. Spark学习之JavaRdd

    RDD 介绍 RDD,全称Resilient Distributed Datasets(弹性分布式数据集),是Spark最为核心的概念,是Spark对数据的抽象.RDD是分布式的元素集合,每个RDD只 ...

  9. https://leetcode.com/problems/palindromic-substrings/description/

    https://www.cnblogs.com/grandyang/p/7404777.html 博客中写的<=2,实际上<=1也是可以的 相当于判断一个大指针内所有子字符串是否可能为回文 ...

  10. 获取键盘的ascii码

    waitKey(1) & 0xFF获取当前按的键的ascii码,