1522843196 发表于 2020-3-5 11:27:09

小白求助!!第一课课后作业。

全部代码敲完了,为什么会出现“E:\MyCppWorkItem\collect2.exe        ld returned 1 exit status”这个错误提示呢?

qiuyouzhi 发表于 2020-3-5 11:29:59

代码呢???

1522843196 发表于 2020-3-5 12:06:53

qiuyouzhi 发表于 2020-3-5 11:29
代码呢???

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

qiuyouzhi 发表于 2020-3-5 12:28:25

1522843196 发表于 2020-3-5 12:06
#include
#include
#include


这是报错吧。。。。
等下,我帮你改改

qiuyouzhi 发表于 2020-3-5 12:31:07

1522843196 发表于 2020-3-5 12:06
#include
#include
#include


#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);
void findALLdirs(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;
}
打字问题太多了,findALLDirs, findAllDirs, findALLdirs
一个函数三个名字

1522843196 发表于 2020-3-5 13:56:00

好的,谢谢!
页: [1]
查看完整版本: 小白求助!!第一课课后作业。