#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++写的文件字符数、单词数以及总行数的统计(源码)的更多相关文章

  1. C#中弹出文件选择窗体和判断是否下载提示窗体的源码

    1.创建一个window窗体

  2. Silverlight实用窍门系列:2.Silverlight动态加载外部XML指定地址的WebService---(动态加载外部XML文件中指定的WebService地址)【附带实例源码】

    接上节所讲的,Silverlight可以加载外部的XML文件里面的内容,那么我们可不可以在外部XML里面配置一个WebService地址,并且以此加载这个地址来动态加载WebService呢?这样子就 ...

  3. php的字符转换 & php登入注册界面设计以及源码 & 分离公共部分

    我们在编写的时候总是会出现乱码 https://www.cnblogs.com/mafeng/p/5827215.html php登入注册界面设计以及源码 https://blog.csdn.net/ ...

  4. Yii2.0源码分析之——控制器文件分析(Controller.php)创建动作、执行动作

    在Yii中,当请求一个Url的时候,首先在application中获取request信息,然后由request通过urlManager解析出route,再在Module中根据route来创建contr ...

  5. 鸿蒙内核源码分析(文件概念篇) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码 | v62.01

    百篇博客系列篇.本篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一切皆是文件 | 51.c.h.o 本篇开始说文件系统,它是内核五大模块之一,甚至有Linux的设计哲学是" ...

  6. 手写Express.js源码

    上一篇文章我们讲了怎么用Node.js原生API来写一个web服务器,虽然代码比较丑,但是基本功能还是有的.但是一般我们不会直接用原生API来写,而是借助框架来做,比如本文要讲的Express.通过上 ...

  7. Django路由层之路由分发 名称空间 虚拟环境 视图层之三板斧 JsonRsponse对象 request对象获取文件 FBV与CBV CBV源码剖析 模板层

    目录 路由层之路由分发 路由层之名称空间 方式1:名称空间 方式2:别名不冲突即可 虚拟环境 pycharm创建虚拟环境 命令行形式创建虚拟环境 视图层之三板斧 HttpRsponse render ...

  8. 曹工说Spring Boot源码(8)-- Spring解析xml文件,到底从中得到了什么(util命名空间)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  9. 曹工说Spring Boot源码(9)-- Spring解析xml文件,到底从中得到了什么(context命名空间上)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  10. # 曹工说Spring Boot源码(10)-- Spring解析xml文件,到底从中得到了什么(context:annotation-config 解析)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

随机推荐

  1. C-08\变量类别和名称粉碎机制

    全局变量 定义:在所有函数外部定义的变量称为全局变量,一般以g_开头,如 char g_szBuf[100]; // 全局变量g_szBuf int main() { printf("%s\ ...

  2. javaEE(网络编程、TCP、线程池优化)

    网络编程 Client-Server(CS) Browser/Server(BS) 1.客户端--服务端 安装客户端 更新. 依赖PC 2.浏览器和服务端 分布式 兼容性 一站开发 网络通信: UDP ...

  3. Python自动合并Word文件同时添加分页符的方法

      本文介绍基于Python,实现对多个Word文档加以自动合并,并在每次合并时按要求增添一个分页符的方法.   现有多个Word文档文件,需将其按名称顺序合并为一个新的Word文件,且需保证每一次合 ...

  4. JZOJ 5352. 【NOIP2017提高A组模拟9.7】计数题

    题目 分析 考虑 \(kruskal\) 的过程 我们选边从高位开始 当前位为 \(0\) 的放一边,为 \(1\) 的放另一边 将 \(0\) 的建一棵字典树, \(1\) 的匹配 因为是异或,那就 ...

  5. VSCode 自定义代码片段

    Ctrl+Shift+P 输入"代码片段:配置用户代码片段": 搜索你想要设置的语言代码片段,比如,我设置 .vue 文件的代码片段,选择 vue.json: 可以配置多个代码片段 ...

  6. Linux:find 指令的选项 +n、-n、n

    描述 find 指令查找文件时可以通过时间来锁定或缩小搜查范围.其中需要利用到文件的三个时间?:Access Time(atime).Modify Time(mtime) 和 Change Time( ...

  7. CPU持续100%分析并解决

    背景 接到客户电话,说某系统数据库服务器CPU利用率从上午8点开始到现在基本上都是100%的情况,影响到了业务.让给看看是什么原因导致的,怎么紧急处理一下. 现象 查看CPU利用率,确实一直是90%以 ...

  8. gin 01

    1.gin介绍: 2.gin的安装 go get -u github.com/gin-gonic/gin 3.gin的第一个helloWord package main import ( " ...

  9. gmgo国密算法库

    gmgo国密算法库 一.背景介绍 基于go1.17.5实现的国密算法库,包括: sm2 : 基于emmansun/gmsm的sm2部分实现部分扩展. sm3 : 基于emmansun/gmsm的sm3 ...

  10. java学习日记20230228-数据类型及加号运算

    程序中+使用: 1.两侧是数值型,则相加: 2.一方为字符串,则拼接: 3.运算顺序从做到右: 数据类型 每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间: java数据类型 基本数 ...