时间与雪 发表于 2018-8-8 08:59:06

C入门第一节课作业

不知道为什么显示0

无符号整形 发表于 2018-8-8 08:59:40

不给出代码我们无法帮您解决哦~

时间与雪 发表于 2018-8-8 09:28:12

无符号整形 发表于 2018-8-8 08:59
不给出代码我们无法帮您解决哦~

#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, target;
          
          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;
             
             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 = ".";
             
             printf("计算中...\n");
             
             findAllCodes(path);
             findALLDirs(path);
             
             printf("目前你总共写了 %ld 行代码! \n\n", total);
             system("pause");
             
             return 0;
                       }                  

无符号整形 发表于 2018-8-8 09:30:19

...
路径没对

时间与雪 发表于 2018-8-8 09:31:43

无符号整形 发表于 2018-8-8 09:30
...
路径没对

要怎么修改呢?

无符号整形 发表于 2018-8-8 09:38:14

时间与雪 发表于 2018-8-8 09:31
要怎么修改呢?

char path = ".";
你这是干嘛呢……

时间与雪 发表于 2018-8-10 16:00:18

无符号整形 发表于 2018-8-8 09:38
你这是干嘛呢……

嗯嗯,谢谢
页: [1]
查看完整版本: C入门第一节课作业