主题:[原创]紧急求助啊,程序风格分析
002004101592
[专家分:0] 发布于 2006-06-30 10:13:00
读入一个C程序,统计程序中代码,注释,空行的行数以及函数的个数和平均行数,并利用统计信息分析该程序的风格.要求如下:
(1) 把C程序文件按字符顺序读入源程序;
(2) 边读入程序,边识别统计代码行,注释行和空行,同时还要识别函数的开始和结束,以便统计其个数和平均行数;
(3) 程序的风格评价分为代码,注释,空行三个方面.
急啊!!!!!!!!!!!!
谢谢大哥大姐们啊!!!!!!!!!!!!!!
回复列表 (共10个回复)
沙发
euc [专家分:4310] 发布于 2006-06-30 22:58:00
有趣 mark
板凳
002004101592 [专家分:0] 发布于 2006-07-01 08:49:00
是吗?能帮小弟做做吗?读文件不会啊,好象不会编,
我将程序按行存入二维数组,但运行后值总是0啊
郁闷啊!!!!!!!!
谢谢啊,副版!!!!!
3 楼
euc [专家分:4310] 发布于 2006-07-01 09:51:00
你把所有的都放到内存了?不是吧...
4 楼
002004101592 [专家分:0] 发布于 2006-07-01 10:24:00
char x[300][150],filename[20];
int maxline=0;/*最大行数*/
int ReadDat()
{FILE *fp;
int i=0;
char *p;
if((fp=fopen(filename,"r"))==NULL)
{printf("Can not Open the File!\n");exit(0);}
while(fgets(x[i],150,fp)!=NULL)
{p=strchr(x[i],'/n');
if(p) *p=0;
i++;
}
maxline=i;
fclose(fp);
return 1;
)printf("%d",maxline);
}
main()
{printf("Input the Filename:");
scanf("%c",filename);
ReadDat();
}
就只是读一下文件都不可以,没办法,文件实在学的不怎么样,简单的都不会,
再者strchr(x[i],'/n'),这个行结束符号也有问题啊,
哎!!!!!!!!!!!!
5 楼
002004101592 [专家分:0] 发布于 2006-07-02 09:17:00
有没有会写的帮我写一个程序出来啊,小弟我实在是没办法啊,都想要放弃了,
各位大哥大姐们,一边看一边给个回话啊,谢谢了啊!!!!!!!!!!!!!
好人们都出来啊,小弟都快急死了,没个头绪啊
6 楼
aboutbmp [专家分:830] 发布于 2006-07-02 13:01:00
统计文件行数:
#include <stdio.h>
int ParseFile(char* filename);
void main()
{
printf("Input the file name:");
char filename[FILENAME_MAX];
scanf("%s", filename);
ParseFile(filename);
}
// 解析文件的函数
int ParseFile(char* filename)
{
if (NULL == filename)
{
printf("Null File Name!");
return 0;
}
char buf[1024];
int lineNum = 1;
FILE* pf = fopen(filename, "rb");
if (NULL == pf)
{
printf("Open File Failed!");
return 0;
}
int nRead, i;
while (!feof(pf))
{
// nRead 为实际读到缓存区中的字节数
nRead = fread(buf, 1, sizeof(buf), pf);
for (i = 0; i < nRead; i++)
{
if (buf[i] == '\n')
lineNum++;
}
}
printf("Total Line Num = %d\n", lineNum);
fclose(pf);
return 1;
}
7 楼
002004101592 [专家分:0] 发布于 2006-07-03 10:04:00
给了个程序,谢了啊,不过好象有些小问题啊,比如filename[FILENAME_MAX]
还有啊,就是不管我输入自己边的程序还是系统的程序,结果都是Open File Failed!
8 楼
aboutbmp [专家分:830] 发布于 2006-07-03 22:13:00
把要分析的文件和exe文件放同一目录下,命令行下到该目录运行。
9 楼
002004101592 [专家分:0] 发布于 2006-07-04 09:25:00
统计函数个数和平均行数,函数起始位置如何记录啊?
如果用特殊符号定位函数的话,程序的可用性就很小啊,我想用{}配对来做,
但是每个函数的第一个{的位置不知道怎么记录, 还有就是这样会把定义的
那些结构体也算进来了,怎么办啊????????????
各位达人们啊,给个提示或是程序什么的,感激不尽啊!!!!!!!!
10 楼
002004101592 [专家分:0] 发布于 2006-07-04 09:34:00
#include<stdio.h>
#include<string.h>
char x[300][150],filename[20];
int maxline=0;/*最大行数*/
void ReadDat()
{FILE *fp;
int i=0,j;
char *p;
if((fp=fopen(filename,"r"))==NULL)
printf("Can not Open the File!\n");
while(fgets(x[i],150,fp)!=NULL)
i++;
maxline=i;
fclose(fp);
printf("%d",maxline);
for(i=0;i<maxline;i++)
for(j=0;j<strlen(x[i]);j++)
printf("%c",x[i][j]);
}
main()
{printf("Input the Filename:");
scanf("%c",filename);
ReadDat();
}
读程序并统计程序的总行数没有问题啊
我来回复