用C++写的文件字符数、单词数以及总行数的统计(源码)
#include <stdio.h>
#include <fstream>
#include <string>
using namespace std;
//计算单词数
int Word(char c,int &w)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
w++;
if(w==1)
return 1;
else
return 0;
}
else
{
if(w>0)
w=0;
return 0;
}
}
//计算字符数
int Letter(char c)
{
if((c<'0'||c>'9')&&c!='\n')
return 1;
else
return 0;
}
//计算行数
int Row(char c,int &r)
{
if(c=='\n')
{
r++;
if(r==1)
return 1;
else
return 0;
}
else
{
if(r>0)
r=0;
return 0;
}
}
int main ()
{
ifsteam in;//读文件
string filename;
gteline(cin,filename,'\n');//获取文件名
cin>>filename;
in.open(filename,'\n');
if(!in)//判断是否打开成功
{
cerr<<"打开文件出错!"<<endl;
return 1;
}
int totalrow=0,totalword=0,totalletter=0;//初始化总行数 ,单词数 ,字符数
int r=0,w=0;//行连续出现次数 ,英文字符连续出现次数
char c;
while(r<2)//如果不是空行则循环
{
c=getchar();
totalrow+=Row(c,r);
totalword+=Word(c,w);
totalletter+=Letter(c);
}
printf("单词数:%d\n",totalword);
printf("字符数:%d\n",totalletter);
printf("总行数:%d\n",totalrow);
return 0;
}
用C++写的文件字符数、单词数以及总行数的统计(源码)的更多相关文章
- C#中弹出文件选择窗体和判断是否下载提示窗体的源码
1.创建一个window窗体
- Silverlight实用窍门系列:2.Silverlight动态加载外部XML指定地址的WebService---(动态加载外部XML文件中指定的WebService地址)【附带实例源码】
接上节所讲的,Silverlight可以加载外部的XML文件里面的内容,那么我们可不可以在外部XML里面配置一个WebService地址,并且以此加载这个地址来动态加载WebService呢?这样子就 ...
- php的字符转换 & php登入注册界面设计以及源码 & 分离公共部分
我们在编写的时候总是会出现乱码 https://www.cnblogs.com/mafeng/p/5827215.html php登入注册界面设计以及源码 https://blog.csdn.net/ ...
- Yii2.0源码分析之——控制器文件分析(Controller.php)创建动作、执行动作
在Yii中,当请求一个Url的时候,首先在application中获取request信息,然后由request通过urlManager解析出route,再在Module中根据route来创建contr ...
- 鸿蒙内核源码分析(文件概念篇) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码 | v62.01
百篇博客系列篇.本篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一切皆是文件 | 51.c.h.o 本篇开始说文件系统,它是内核五大模块之一,甚至有Linux的设计哲学是" ...
- 手写Express.js源码
上一篇文章我们讲了怎么用Node.js原生API来写一个web服务器,虽然代码比较丑,但是基本功能还是有的.但是一般我们不会直接用原生API来写,而是借助框架来做,比如本文要讲的Express.通过上 ...
- Django路由层之路由分发 名称空间 虚拟环境 视图层之三板斧 JsonRsponse对象 request对象获取文件 FBV与CBV CBV源码剖析 模板层
目录 路由层之路由分发 路由层之名称空间 方式1:名称空间 方式2:别名不冲突即可 虚拟环境 pycharm创建虚拟环境 命令行形式创建虚拟环境 视图层之三板斧 HttpRsponse render ...
- 曹工说Spring Boot源码(8)-- Spring解析xml文件,到底从中得到了什么(util命名空间)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- 曹工说Spring Boot源码(9)-- Spring解析xml文件,到底从中得到了什么(context命名空间上)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- # 曹工说Spring Boot源码(10)-- Spring解析xml文件,到底从中得到了什么(context:annotation-config 解析)
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
随机推荐
- Vue15 v-for和key的作用及原理
部分转自https://blog.csdn.net/cun_king/article/details/120714227 1 v-for指令 1.1 简介 用于遍历. 当在组件中使用 v-for 时, ...
- gitbook使用指南
一. node 下载 不要去node官网下载,那是最新版的,官方没提供旧版node.如果下载了最新版的还得下载一个管理node版本的工具,很麻烦且没必要. 在这个网站下载node:https://no ...
- A*算法小记
\(\text{A*}\) 一种启发式搜索 和暴搜的差别是多了一个估价函数,每次取出一个估算最优的状态以期更高效完成任务 重点在于估价函数 \(\text{h*(n)}\) 的设计,若实际代价为 \( ...
- .net 定时任务(调度 .net quartz) demo
详细解说:https://blog.csdn.net/noaman_wgs/article/details/80984873 demo如下: 新建控制台应用程式: 添加Nuget包 static vo ...
- CSS nth-child
前言 nth-child 伪类选择器非常地好用,所以必须得掌握它,能够为我们简化不少的 CSS 代码.比如选择前 n 行元素.选择后 n 行元素.选择奇偶行元素.选择 n 倍元素等.其语法本文不说,请 ...
- Postgresql WAL日志浅析
一.预写日志(WAL) 预写式日志(Write Ahead Log,WAL)是保证数据完整性的一种标准方法.简单来说,WAL的中心概念是数据文件(存储着表和索引)的修改必须在这些动作被日志记录之后才被 ...
- LeetCode-357 统计各位数字都不同的数字个数
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-numbers-with-unique-digits 题目描述 给你一个整数 n ,统 ...
- FreeRTOS内存管理文档
heap1.c:只能申请内存,不能释放内存.适合运行后不申请新内存的程序. heap2.c: 既能申请内存,也能释放内存,但释放内存后,相邻的空余内存不能合并.适合每次申请相同大小内存的变量的程序使用 ...
- JSON字符串需Aes加密,加密为Hex
JSON字符串需Aes加密,加密为Hex 前端加密 后端加密 package com.iktapp.api.utils; import org.apache.commons.codec.Decoder ...
- 在Debian11上安装Openresty服务(Nginx+Lua)
OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 We ...