| 
 | 
 
 
发表于 2024-5-14 19:30:01
|
显示全部楼层
 
 
 
 
#include <io.h> 
#include <direct.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <字符串.h> 
 
#define 最大 256 
 
长总计; 
 
int countLines(const char *文件名); 
void findAllCodes(const char *路径); 
void findAllFiles(const char *path); 
 
int countLines(const char *文件名) 
{ 
文件 *fp; 
int 计数 = 0; 
int 温度; 
 
if((fp = fopen (filename, "r")) == NULL) 
                { 
fprintf(stderr,"无法打开文件:%s\n",filename); 
返回 0;                         
                } 
                 
而((temp = fgetc(fp)) != EOF) 
                { 
如果 (temp == '\n') 
                                { 
计数++;                                         
                                } 
                        } 
                 
fclose(fp); 
 
返回计数;                                 
} 
 
void findAllCodes(const char *path) 
{ 
结构_finddata_t fa; 
长手柄; 
char thePath[MAX],target[MAX]; 
 
strcpy(路径,路径); 
if((handle = _findfirst(strcat(thePath,"/*.c"),&fa)) != -1L) 
                { 
做 
                        { 
sprintf(target,"%s/%s",路径,fa.name); 
总计 += countLines(target); 
}while (_findnext(handle,&fa) == 0);                         
                } 
                 
_findclose(句柄); 
} 
 
void findALLDirs(const char *path) 
{ 
结构_finddata_t fa; 
长手柄; 
char thePath[最大]; 
 
strcpy(路径,路径); 
if((handle = _findfirst(strcat(thePath,"/*"),&fa)) == -1L)         
                { 
fprintf(stderr,"路径%s是错误的!\n",path); 
返回;                         
                } 
 
做 
                { 
if(!strcmp(fa.name,".")||!strcmp(fa.name,"..")) 
继续; 
 
if(fa.attrib == _A_SUBDIR) 
                        { 
sprintf(thePath,"%s/%s",path,fa.name); 
                                        findAllCodes(thePath); 
                                        findALLDirs(thePath); 
                        } 
}While(_findnext(handle,&fa) == 0); 
 
                _findclose(handle); 
} 
 
int main() 
{ 
字符路径[MAX ]= "."; 
 
printf("计算中...\n"); 
 
                findALLCodes(path); 
                findALLDirs(path); 
         
printf("目前你总共写了%ld行代码!\n\n",total); 
                system("pause"); 
                 
返回 0;                                 
} |   
 
 
 
 |