实践简单的项目WC
#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的更多相关文章
- 个人项目-wc
个人项目-WC (C语言) 一.Github地址:https://github.com/Lin-J-F/WC 二.PSP表格 PSP2.1 Personal Software Process St ...
- 软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程策划篇
续:软件项目量化管理(CMMI高成熟度)实践经验谈--之概述篇 二.项目管理过程 软件开发项目管理过程,从项目全视角来看,分为售前.售中.售后等三个大的阶段.本文所谈的是售中阶段项目管理过程,在售中阶 ...
- 简单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 ...
- python编程从入门到实践 alien invasion 项目源码
现在上传一个 python编程从入门到实践 alien invasion 项目源码 以供大家学习参考 跟官方版本可能不太一样,因为是自己写的 也算是给新手一个参考 我用的环境是pycharm 可能需要 ...
- Intellij创建简单Springboot项目
Intellij创建简单Springboot项目 第一步:选择创建新项目——file-new-project 第二步:选择项目类型——Spring Initializr-next 第三步:输入项目信息 ...
- Hibernate入门2.简单的项目开发实例
Hibernate入门2.简单的项目开发实例 这一节通过一个简单的项目学习Hibernate项目的配置 代码下载 : 链接: http://pan.baidu.com/s/1zlgjl 密码: p34 ...
- Ant—使用Ant构建简单Java项目(三)
博客<Ant-使用Ant构建简单Java项目(二)>我们简化了运行Test类中main方法须要运行的命令,本博客来介绍一下如何使build.xml文件和当中使用property标签定义的属 ...
- javaWEB简单商城项目
javaWEB简单商城项目(一) 项目中使用到了上一篇博文的分页框架,还有mybatis,重点是学习mybatis.现在有些小迷茫,不知道该干啥,唉,不想那么多了,学就对了 一.项目功能结构 1.功能 ...
- vue-cli安装以及创建一个简单的项目(一)(Node\npm\webpack简单使用)
1.关系介绍 1.简单的说 Node.js 就是运行在服务端的 JavaScript. 2.NPM是随同NodeJS一起安装的包管理工具(新版的nodejs已经集成了npm),能解决NodeJS代码部 ...
随机推荐
- 进程间通信——LINUX
1.编写一段程序,使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进 程捕捉键盘上来的中断信号(即按ctrl+c键),当捕捉到中断信号后,父进程用系统调用kill( )向 ...
- selenium+python自动化笔记之一
一.webdriver的API与定位元素 元素定位核心部分 元素名称 webdriver API 说明 id find_element_by_id() id定位 name find_element_b ...
- SQL mysql优化
慢查询 如何通过慢查日志发现有问题的SQL? 查询次数多且每次查询占用时间长的SQL pt-query-digest分析前几个查询 IO大的SQL pt-query-diges分析中的Rows exa ...
- Python3编写网络爬虫04-爬取猫眼电影排行实例
利用requests库和正则表达式 抓取猫眼电影TOP100 (requests比urllib使用更方便,由于没有学习HTML系统解析库 选用re) 1.目标 抓取电影名称 时间 评分 图片等 url ...
- 【转】URL编码(encodeURIComponent和decodeURIComponent)
转自http://blog.jhonse.com/archives/2032.jhonse 最近在用CI框架的时候,发现一个问题,URL的GET方式链接时,如果用中文字符的话,就会出现问题,提示:链接 ...
- span 文本内容超过宽度自动换行
span{word-break:normal; width:auto; display:block; white-space:pre-wrap;word-wrap : break-word ;over ...
- 浅谈js之闭包
1.什么是闭包??? "官方"的解释是指一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分: 红皮书是这样说的,闭包是指有权访问另一 ...
- EXCEL这样根据某单元格的内容来改变整行颜色
1.选择你需要改变颜色的单元格列数,然后打开“格式”--“条件格式”: 2.选择“公式”一项,在后面输入=$L1=2050,然后点开下面的“格式”按钮设置好格式. 3.基本上就OK了,注意在输入公式的 ...
- EM算法笔记
EM算法在很多地方都用使用到,比如简单的K-means算法,还有在隐马尔可夫里面,也涉及到了EM算法,可见EM算法在机器学习领域的重要地位.在这里就写一下我对于EM算法的一些理解笔记.后续有新的理解也 ...
- 上传文件调用webapi方式
选择文件 <div> <label for="fileUpload"> 选择文件 </label> <br/> <input ...