MaisuE
2021-08-17 01:34
采纳率: 100%
浏览 30

关于#c语言#的问题,请各位专家解答!

img

img
#Dve-C++##include<io.h>
#include<direct.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX 256

long total;

int countLines(const char filename);
void findAllCodes(const char
path)
void findALLFiles(const char*path);

int countLines(const charfilename)
{
FILE
fp;
int count=0;
int temp;

if((fp=fopen(filename,"r")) ==NULL)
{
fprintf(stderr,"Can not open the file:%s\n",filename);
return 0;
}

while((temp=fgetc(fp))!=EOF)
{
if(temp=='\n')
{
count++;

    }

}
fclose(fp);

return count;

}

void findAllCodes(const char*path)
{
struct_finddata_t fa;
long handle;
char thePath[MAX],target[MAX];

   strcpy(thePath,path);
   if((handle=_findfirst(strcat(thePath,"/*.c"),&fa))!=-1L)
   {
       do
       {
           sprintf(target,"%s/%s",path,fa.name);
           total += countLines(target);
       }while(_findnext(handle,&fa)==0);
    }

    _findclose(handle);

}

void findALLDirs(const char*path)
{
struct_finddata_t fa;
long handle;
char thePath[MAX];

   strcpy(thePath,path);
   if((handle=_findfirst(strcat(thePath,"/*"),&fa))==-1L)
   {
   fprintf(stderr,"The path %s is wrong!\n",path);
   return;
   }
   
   do
   {
       if(!strcmp(fa.name,".")||!strcmp(fa.name,".."))
         continue;
         
         if(fa.attrib ==_A_SUBDIR)
         {
              sprintf(thePath,"%s/%s",path,fa.name);
              findAllCode(thePath);
              findALLDirs(thePath);
         }
   }while(_findnext(handle,&fa)==0);
   
   _findclose(handle);

}

int main()
{
char path[MAX]=".";

  printf("计算中...\n");
  
  finAllCodes(path);
  findALLDirs(path);
  
  printf("目前你总共写了%ld行代码!\n\n",total);
  system("pause");
  
  return 0;

}

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • StjpStjp 2021-08-17 11:50
    最佳回答

    stay(num) 说明有中文的游动(可能是空格)
    建议这行重新打
    后面括号大括号有少的(代码太乱了,也太难找了)

    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题