社区
C语言
帖子详情
用C语言做一个对C源程序进行行数统计的程序!急~~~
citytiti
2004-08-30 09:23:01
对C源程序文件进行行数统计的程序,要求输出一个指定目录下的所有.C及.H文件的大小,总行数,代码行数及注释行数.
要求用C语言编写。。。
...全文
354
14
打赏
收藏
用C语言做一个对C源程序进行行数统计的程序!急~~~
对C源程序文件进行行数统计的程序,要求输出一个指定目录下的所有.C及.H文件的大小,总行数,代码行数及注释行数. 要求用C语言编写。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
citytiti
2004-09-04
打赏
举报
回复
谢谢大家啊!太感谢了!
lion1900
2004-08-31
打赏
举报
回复
/************************************************
* -name [IN]源文件名 *
* -code [OUT]代码行数 *
* -comment [OUT]注释行数 *
* 返回总行数。出错返回0 *
*************************************************/
int sum_line(char *name, int *code, int *comment)
{
FILE *fp;
char buff[BUFF_MAX];
int flag;
if((fp = fopen(name, "rt")) == NULL)
return 0;
(*code) = 0;
(*comment) = 0;
flag = 0;
empty = 0;
while(!feof(fp))
{
fgets(buff, BUFF_MAX, fp);
if(strstr(buff,"\n") == buff)
continue;
if(flag == 1)
{
if(strstr(buff, "*/") != NULL)
flag = 0;
(*comment)++;
continue;
}
if(strncmp(buff, "//", 2) == 0)
(*comment)++;
else if(strncmp(buff, "/*", 2) == 0)
{
if(strstr(buff, "*/") != NULL)
(*comment)++;
else
flag = 1;
}
else
(*code)++;
}
fclose(fp);
return (*code) + (*comment);
}
pacman2000
2004-08-31
打赏
举报
回复
int i; // 注释。。。
这算是一行? 一个代码行? 一个注释行? 还是一个代码行加一个注释行?
楼主的需求描述不清楚啊。
lion1900
2004-08-31
打赏
举报
回复
mark
短歌如风
2004-08-31
打赏
举报
回复
一般来说,C代码中的有效代码行数与分号的个数是大致接近的,没有必要为了精确统计做得那么复杂。如果一定要精确统计,就要完成一个C代码语法分析器了。
zwzzj
2004-08-31
打赏
举报
回复
#include <stdio.h>
void main(int argc,char **argv){
FILE *fs,*fd;
int ln=1;
char buf[512];
if(argv!=3){
printf("parament error!\n");
printf("\nformat:filename source_file destion_file\n");
getch();
exit(0);
}
if((fs=fopen(argv[1],"rt"))==NULL){
printf("Cannot oprn this file %s\n",argv[1]);
exit(0);
}
if((fd=fopen(argv[2],"wt"))==NULL){
printf("Cannot oprn this file %s\n",argv[2]);
exit(0);
}
while(fgets(buf,512,fs)!=NULL)
if(fprintf(fd,"%d%-6s",ln++,buf)==NULL){
printf("Cannot write to %s.\n",argv[2]);
fclose(fd);
exit(0);
}
fclose(fs);
printf("OK!\n");
}
ywfscu
2004-08-30
打赏
举报
回复
一行一行的读直到feof()
健之
2004-08-30
打赏
举报
回复
逐个打开每个文件,读出相应的行数等,并作出判断。
Squall1009
2004-08-30
打赏
举报
回复
?
linguanyu315
2004-08-30
打赏
举报
回复
同意楼上的.
Wugifer
2004-08-30
打赏
举报
回复
用 fgets 吧,一次一行。
zwzzj
2004-08-30
打赏
举报
回复
读出文件中的512字节到缓冲区,再调用fprintf()函数就可以了。代码明天给你传过来。
citytiti
2004-08-30
打赏
举报
回复
请高人指点迷津!最好能给我个程序!
李宠波
2004-08-30
打赏
举报
回复
怎么算是一行?如果一个回车就是一行,或者一个分号就算是一代码行,那就容易了。
代码
行数
统计
工具
代码
行数
统计
工具 两个工具可以用
代码行
统计
(可以对C\C++、Java的源代码
进行
统计
,
统计
结果包括:总
行数
、空
行数
、注释
行数
和代码
行数
,
统计
结果可以以表格的形式显示给用户或另存为文件)
代码行
统计
工具使用说明 代码行
统计
工具用Java语言实现,可以对C\C++、Java的源代码
进行
统计
,
统计
结果包括:总
行数
、空
行数
、注释
行数
和代码
行数
,
统计
结果可以以表格的形式显示给用户或另存为文件。 一 执行环境: 操作系统:WindowsNT/2000; 执行环境:JDK1.3。 二 安装: 1)将code.zip解压缩; 3)设置环境变量: 在 开始—〉设置—〉控制面板—〉系统—〉高级—〉环境变量 中设置环境变量: PATH=[code.zip的安装目录]\jre\bin CLASSPATH=[code.zip的安装目录]\class 三 运行: 直接运行(双击)在
源
程序
[code.zip的安装目录]\class目录下的CodeStatistic.bat 批处理文件。 〈注〉:如果
程序
不能正常运行,有可能是前面系统环境变量PATH、CLASSPATH设置的问题,请检查添加的路径是否正确,确定正确还不能正常运行,请注销当前用户后再启动
程序
。 四 使用方法: 1. 代码行
统计
工具开始工作后,点击窗口下方的“添加”按钮会以对话框的形式浏览硬盘目录,现在可以添加要
进行
统计
的C\C++、Java
源
程序
, 2. 选定文件后,会在代码行
统计
工具主界面的列表框中显示已选定的文件名和路径; 3. 点击“添加”按钮继续添加需
统计
的文件或点击“删除”按钮删除已选文件; 4. 需
统计
的文件选定后,点击“
统计
”按钮开始
统计
,弹出“代码行
统计
结果”窗口以表格形式显示
统计
结果; 5. 在“代码行
统计
结果” 窗口中可选择将
统计
结果另存为文件形式; 6. 点击“关闭”按钮关闭“代码行
统计
结果” 窗口,回到主窗口; 7. 继续其它
统计
活动或点击“退出”按钮退出代码行
统计
工具。
源代码
行数
统计
,能
统计
c,c++,c#,java,vb,delphi
源代码
行数
统计
,能
统计
c,c++,c#,java,vb,delphi等各种
源
程序
文件
c
统计
c文件里的总
行数
,空
行数
,有效
行数
,注释
行数
c
统计
c文件里的总
行数
,空
行数
,有效
行数
,注释
行数
printf里的/**/不为注释
c语言
编译原理实验-课设-词法分析
程序
-代码+报告
设计并实现
一个
C语言
词法分析
程序
(1)可以识别出用
C语言
编写的
源
程序
中的每个单词符号,以记号的形式输出每个单词符号。 (2)可以识别并跳过
源
程序
中的注释。 (3)可以
统计
源
程序
中的语句
行数
、各类单词的个数、以及字符总数,并输出
统计
结果。 (4)检查
源
程序
中存在的词法错误,并报告错误所在的位置。 (5)对
源
程序
中出现的错误
进行
适当的恢复,使词法分析可以继续
进行
,对
源
程序
进行
一次扫描,即可检查并报告
源
程序
中存在的所有词法错误。
C语言
70,024
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章