| 
 | 
 
 
发表于 2020-9-4 14:37:48
|
显示全部楼层
 
 
 
 
回帖奖励 +5 鱼币
 本帖最后由 LuLD 于 2020-9-4 14:52 编辑  
- #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 findALLDirs(const char* path);                                    //void findALLFiles()  应该是  void findALLDirs()
 
  
- 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 _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);
 
 -             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;
 
 - }
 
  复制代码 
//void findALLFiles()  应该是  void findALLDirs() 
你加了 _s  的 又给删掉了,不知道你要修改的思路 |   
 
 
 
 |