c++代码行统计程序

前言:

应该每一个学编程的人都很希望知道自己打了多少行代码,而网上又没有好用的统计软件(至少我没找到)。于是我做了一个代码行统计程序。

原理:

由于是上课时打的,只能统计.cpp文件,其它文件暂时没搞。只适用于windows系统,原理使用cmd扫出指定目录下所有文件,再判断后缀名。用freopen和fstream打开文件,freopen用于生成一个.bin文件来存放cmd扫目录时的输出,fstream+while+getline用于统计代码行。由于未加注释特判,统计的数量是所有行之和。最后在程序当前目录下生成统计文件,.txt后缀。里面是你所有代码,最后一行是统计数。

代码:

#include<bits/stdc++.h>
#include<windows.h>
#include<fstream>
using namespace std;
int main()
{long long cnt=0;string b;puts("请输入要统计的磁盘(带:):");cin>>b;system(b.c_str());getline(cin,b);puts("请输入要统计的绝对目录(单\\要用\\\\,双\\\\要用\\\\\\\\):");string n;getline(cin,n);n="cd "+n;system(n.c_str());freopen("date.bin","w",stdout);system("dir /O");freopen("代码统计.txt","w",stdout);ifstream date;date.open("date.bin");string a;for(int i=1;i<=7;i++)getline(date,a);while(getline(date,a)){if(a[a.size()-1]!='p'&&a[a.size()-2]!='p'&&a[a.size()-3]!='c')continue;int len=a.size();string x=a.substr(36,a.size());cout<<x<<":"<<endl;ifstream film;film.open(x.c_str());string t;while(getline(film,t)){cnt++;puts(t.c_str());}film.close();}puts("总计(Total):");cout<<cnt;freopen("CON","w",stdout);puts("总计(Total):");cout<<cnt;
}
//               

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/37102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫之scrapy框架基本使用

python爬虫之scrapy框架基本使用 1、环境安装&#xff1a;pip install scrapy 2、创建一个工程&#xff1a;scrapy startproject xxxPro 3、cd xxxPro 4、在spiders子目录中创建一个爬虫文件&#xff1a;scrapy genspider spiderName www.xxx.com 5、执行工程&#xff1a;scra…

kotlin 携程 withTimeoutOrNull

withTimeoutOrNull 是 Kotlin 协程库中的一个函数&#xff0c;它用于在指定的时间内执行一个协程&#xff0c;如果协程在超时时间内完成&#xff0c;则返回协程的结果&#xff0c;否则返回 null。 函数签名: fun <T> withTimeoutOrNull(timeMillis: Long, block: suspe…

3DEXPERIENCE平台正在推动仿真技术的创新,旨在创造仿真设计的新境界

随着企业数字化转型的不断推进&#xff0c;3DEXPERIENCE 平台正以其前瞻性的技术和服务重塑仿真设计领域的新高度&#xff0c;助力企业实现仿真技术的再次飞跃。该平台不仅整合了先进的仿真工具与设计流程&#xff0c;还促进了跨部门的协作&#xff0c;降低分析仿真对硬件的要求…

QSPI四线SPI:D0、D1、D2、D3

在SPI&#xff08;串行外设接口&#xff09;通信中&#xff0c;D0、D1、D2、D3通常指的是数据线&#xff0c;也叫做数据引脚或通道。这些引脚的使用可能会根据具体设备或配置的不同而有所变化。 标准的SPI通信接口通常包含以下四个主要引脚&#xff1a; MOSI&#xff08;Master…

【第7章】MyBatis-Plus持久层接口之Chain

文章目录 前言一、使用步骤1. query2. update 二、使用提示总结 前言 Chain 是 Mybatis-Plus 提供的一种链式编程风格&#xff0c;它允许开发者以更加简洁和直观的方式编写数据库操作代码。Chain 分为 query 和 update 两大类&#xff0c;分别用于查询和更新操作。每类又分为普…

iptables(10)target(REJECT、LOG)

简介 前面文章介绍iptables的匹配条件,并且已经用到了一些常用动作,比如ACCEPT、DROP、REJECT等。 以下是 iptables 中常用的一些目标(target)及其原理和时机:ACCEPT 原理:允许数据包通过,并停止对后续规则的匹配。 时机:当你想允许特定的数据包通过防火墙时。DROP 原…

远程桌面无法复制粘贴文件到本地怎么办?

远程桌面不能复制粘贴问题 Windows远程桌面为我们提供了随时随地访问文件和数据的便捷途径&#xff0c;大大提升了工作和生活的效率。然而&#xff0c;在使用过程中&#xff0c;我们也可能遇到一些问题。例如&#xff0c;在通过远程桌面传输文件时&#xff0c;常常会出现无法复…

devc++跑酷小游戏4.1.5

导航&#xff1a; Dev-c跑酷小游戏 1.0.0 devc跑酷小游戏1.2.5 devc跑酷游戏1.2.6 devc跑酷游戏2.0.0 devc跑酷游戏2.0.1 devc跑酷游戏2.4.0 devc跑酷小游戏3.5.0 devc小游戏3.8.5 devc跑酷小游戏4.0.0 更新内容: 也没更新多少&#xff0c;改了界面颜色和按钮&#…

突破SaaS产品运营困境:多渠道运营如何集中管理?

随着数字化时代的到来&#xff0c;SaaS&#xff08;软件即服务&#xff09;产品已成为企业日常运营不可或缺的工具。然而&#xff0c;在竞争激烈的市场环境下&#xff0c;SaaS产品运营越来越重视多渠道、多平台布局&#xff0c;以更广泛地触及潜在用户&#xff0c;然而&#xf…

Android Native 客户端属性配置系统使用说明

Android Native 客户端属性配置系统使用说明 背景和问题现代 android 开发基本都基于 gradle 属性设置来进行定制化编译,随着项目的迭代,工程结构越发复杂,配置属性越来越多,越来越多的配置使得上手难度越来越大。 解决方案设计一般而言,在 android 开发中,Gradle 属性系…

新国都:昙花一现or未来可期?

从波动起伏到强势爆发&#xff0c;这份业绩能否持续&#xff1f; 今天我们抽取一名铁杆粉丝想要咨询的公司来说一说——新国都。 一句话总结这家以第三方支付为主营业务的公司业绩&#xff1a;盈利能力突然爆发&#xff0c;23年净利润暴增近16倍&#xff0c;24年Q1净利润大增6…

继承WebMvcConfigurationSupport后居然出现了Bug?

前言 今天在编写文件上传代码时对静态资源进行映射时遇到了一个Bug与各位看官进行分享&#xff0c;首先先复现一下Bug。 复现过程 文件上传类 /*** 文件的上传与下载*/ Slf4j RestController RequestMapping("/common") public class CommonController {Value(&q…

mysql解压版本安装5.7

1. 官网下载好解压版本 我这边5.7版本 https://dev.mysql.com/downloads/file/?id523570 mysql官网 创建 my.ini文件 内容如下 [client] #客户端设置&#xff0c;即客户端默认的连接参数# socket /data/mysqldata/3306/mysql.sock #用于本地连接的socket套接字 # 默…

ASP.NET MVC-简单例子-配置日志文件-log4net

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 安装 使用NuGet 安装时发现报错并无法安装&#xff1a; 现有 packages.config 文件中检测到一个或多个未解析包依赖项约束。必须解析所有依赖项约束以添加或更新包。如果正在更新这些包&#xff0c;则可忽略此消息&am…

5G EPS fallback

5G EPS Fallback语音方案流程总结-电子发烧友网 (elecfans.com) 5g信令流程详解_5G语音信令流程-CSDN博客 可以参考的文件&#xff1a; 【漫画】图解5G信令流程&#xff1a;08 EPSFallback.docx - 人人文库 (renrendoc.com)

Linux命令 wc(word count)-l(lines)用于统计文件中的行数。

文章目录 1、wc -l2、实战3、wc --help 1、wc -l 在命令 wc -l 中&#xff0c;-l 的英文全称是 lines。这个选项用于指定 wc&#xff08;word count&#xff0c;单词计数&#xff09;命令来统计文件的行数。 例如&#xff0c;当你运行 wc -l load_user_100w_sort.sql 时&…

如何在Android应用中最佳实现“Edge to Edge“特性?

Edge to Edge"特性 要在Android应用中最佳实现"Edge to Edge"特性,可以按照以下步骤进行操作: 1. 设置目标版本:将应用的目标版本设置为Android Q或更高版本。在build.gradle文件中,将targetSdkVersion设置为Q。 2. 设置主题样式:在styles.xml文件中,创…

操作系统之《PV操作》【知识点+详细解题过程】

1、并发进程 &#xff1a; 并发的实质是一个处理器在几个进程之间的多路复用&#xff0c;并发是对有限的物理资源强制行使多用户共享&#xff0c;消除计算机部件之间的互等现象&#xff0c;以提高系统资源利用率。 &#xff08;1&#xff09;并发进程——互斥性&#xff1a; 进…

【pytorch10】统计属性

常见统计属性 norm&#xff08;范数&#xff09;mean,sumprodmax&#xff0c;min&#xff0c;argmin&#xff0c;argmaxkthvalue&#xff0c;topk kthvalue求第几个的位置和第几个的值 topk求top几的这样的一个数值 norm范数 这里的norm表达的是范数的意思&#xff0c;norma…

GRS认证流程是什么?

GRS认证的认证流程主要包括以下几个步骤&#xff1a; 1. 提交申请 首先&#xff0c;企业需要向GRS认证机构提交认证申请&#xff0c;并提供相关的企业信息和产品信息。这通常包括企业的基本信息、生产工厂信息、产品范围、生产流程等。 2. 合同评审 认证机构会对企业提交的…