bailetayiyan 发表于 2023-4-9 00:43:08

求助,,C语言教程里的S1E2



#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;
}
data:image/png;base64,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7yuWc/DBB5ct7cV2nXXWWcW042HfffctlvfWt761bJl8se9XXXVVMR4PcYyuu+66dOKJJ5YtnYljOpbjet5556UjjzyyfDeyWNepp55avutenLdOj1lcn+N1zQAAAAAAABNr3IKvCE0uu+yydM4550xqFdIuu+xShFBz5swpW9p78skn08tf/vJi2vEIit785jengw46KB166KFly9BinRGQxRDrjmAphrFuxze+8Y20evXq9Pa3v71sGZvYl9mzZ6clS5aULRMvjsEBBxyQDjzwwLJlwHCBUxzPefPmle+6EwFbnLcFCxaULQAAAAAAQFX0XXvK2fXHNq1J9Xp/+osLzy2bRyeCr/nz56dHHnkknXDCCUXYFOFFBBWjFdU5119/ffnu+SJAetvb3jbidCFClmOOOabYrm4qjNqJSqsI+E4++eQidDv88MPLTwZ0ss+33XZbOumkk8p3z9dJpVEc7wir4phHCDacD33oQ+Wr9uIYRigU091zzz1FW4R1EUw1O/vsszfbttiGENvQbKT1hXzNtJ6/CL5iG2IZcd4WL148+HnzZyG2cbvttivOyUjy9Rjn7dZbby1b2+9niGsrrpfvf//7ZctzrrnmmsHjxPhbuXJlcV4BAAAAAKBT4xp8RRAUFV/N4dc73vGOoiqrnde97nXFPN/85jfLlucbKVxoF3wNFWKEmDYCp+XLl5ctm4tQZySx/AisYh+PPvroIkQ77rjjyk+fE0FUhFIxvv/++9Pjjz9etK9atSo98MADacWKFZuFL62aw6VYThzXToKWoaYdKYiKbg7DLbfcUoxDVH/l6qhYZiw7KsOGC76apxtOPo7tAsAcbi1cuDBdeumlxbLz9rcGXzk8i/fDHZ/h1pevo250ErYyeoIvAAAAAAC6Na7BV4hqmnPPHVjOxz72sWGDiFx900l3gc0iLMtd48W8UaV09dVXF2FSiNCr2xAj62Rb4plUsY4IZC655JLB7XnooYc2298ctDSHNKP1kY98JB1xxBFFAHTGGWcMeVzjWWdx3GOb8vZ1IlfDtcrHIy+vOYDKcgiW2zs9r3m6HFjFOqK6KjSHW7kSLVdpNX+Wj/Edd9yRjj/++GLeobSuL+aNLhPjGEX7nnvuWU75nFh27PPll19etjzn9ttvH9xexp/gCwAAAACAbo178BUifAm5mikHDt2KSrB2FVg5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/fq0adOmtHHjxrIJAAAAAAAAek/t2WefTWvXrk3r1q0rmwAAAAAAAKD36OoQAAAAAACAShB8AQAAAAAAUAmCLwAAAAAAACpB8AUAAAAAAEAlCL4AAAAAAACoBMEXAAAAAAAAlSD4AgAAAAAAoBIEXwAAAAAAAFSC4AsAAAAAAIBKEHwBAAAAAABQCYIvAAAAAAAAKkHwBQAAAAAAQCUIvgAAAAAAAKgEwRcAAAAAAACVIPgCAAAAAACgEgRfAAAAAAAAVILgCwAAAAAAgEoQfAEAAAAAAFAJgi8AAAAAAAAqQfAFAAAAAABAJQi+AAAAAAAAqATBFwAAAAAAAJUg+AIAAADg/2/nbk4VhqIwimYS8AcLsP/2nAg6USGPd7q4m7UmJ99tYUMAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABKELwAAAAAAABImfB3HMWPf97kAAAAAAACwmglfv99vxul0mgsAAAAAAACrmfD1+XxmXC6XuQAAAAAAALCaCV/v93vG+XyeCwAAAAAAAKuZ8PV6vWbcbrfter3ONwAAAAAAAKxkwtf3+92ez+c83O/3uQAAAAAAALCSCV//Ho/HdhzH/O5Q/AIAAAAAAGAt2/YHI/M9XKgVv0sAAAAASUVORK5CYII=孩子实在搞不懂哪里出错了,帮帮{:5_100:}

isdkz 发表于 2023-4-9 00:46:37

第 80 行你的引号放错位置了,sprintf(thePath, "%s/%s, path, fa.name"); 应该改为 sprintf(thePath, "%s/%s", path, fa.name);


#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;
}

不二猫猫 发表于 2023-4-9 04:06:46


二楼正解!


↓点↓看↓妹↓妹↓大↓腿↓

bailetayiyan 发表于 2023-4-9 11:08:56

isdkz 发表于 2023-4-9 00:46
第 80 行你的引号放错位置了,sprintf(thePath, "%s/%s, path, fa.name"); 应该改为 sprintf(thePath, "%s/ ...

还是不太行,改了但是运行后,显示:目前你总共写了0行代码

isdkz 发表于 2023-4-9 11:11:03

bailetayiyan 发表于 2023-4-9 11:08
还是不太行,改了但是运行后,显示:目前你总共写了0行代码

你是用 dev-c++ 运行的?这个软件一般创建的源文件默认后缀名是 cpp,

而这个代码是获取当前目录及子目录下的 c 源文件,也就是后缀名为 .c 的文件

bailetayiyan 发表于 2023-4-9 11:16:03

isdkz 发表于 2023-4-9 11:11
你是用 dev-c++ 运行的?这个软件一般创建的源文件默认后缀名是 cpp,

而这个代码是获取当前目录及子 ...

ok了ok了感谢{:5_109:}
页: [1]
查看完整版本: 求助,,C语言教程里的S1E2