求帮忙检查一段计算“代码行数”的代码

来源:-

天阶夜色

2018-08-27 17:34

Dev系统提示第62行错了,下面一行是Dev给出的报错

/////62 21 C:\Users\Administrator\Desktop\c编程\第一节\5.11代码行数.cpp [Error] aggregate 'findALLDirs(const char*)::_finddate_t fa' has incomplete type and cannot be defined//////

https://img.mukewang.com/5b83c61c0001b86709530397.jpg

https://img2.mukewang.com/5b83c62a0001e51f10520386.jpg

https://img2.mukewang.com/5b83c63b0001811410070361.jpg

https://img3.mukewang.com/5b83c6490001444808660364.jpg

https://img1.mukewang.com/5b83c65500017b0b08190212.jpg

https://img.mukewang.com/5b83c6610001770f10200129.jpg

#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 char *filename)

{

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 _finddate_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);

findAllCodes(thePath);

findALLDirs(thePath);

}

}while(_findnext(handle,&fa)==0);

_findclose(handle);

}


int main()

{

char path[MAX]=".";

printf("计算中...\n");

findAllCodes(path);

findALLDirs(path);

printf("目前你总共写了%ld行代码!\n\n",total);

system("pause");

return 0 ;

}


写回答 关注

1回答

  • 天阶夜色
    2018-08-27 18:09:57

    我已找到问题,

    第62行应是struct _finddata_t fa;

    data写成了date,

    欢迎冒泡回答,立即采纳

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926212 学习 · 20797 问题

查看课程

相似问题