Simon011115 发表于 2021-8-24 16:17:40

求助大佬,为什么我程序运行给我显示 [Error] ld retur...

{我不会插入图片,请大家见谅,这是小甲鱼带你学C带你飞第二节课留的作业}
为什么我运行后给我显示C:\Users\simon\Desktop\collect2.exe       ld returned 1 exit status

我把小甲鱼的代码复制粘贴就可以正常运行,所以应该不是编译器设置的问题吧?我用的dev-C++
我真已经把我的代码和小甲鱼的比对四次了,求助一下大佬,真的不知道问题在哪了,以下是我自己敲的代码





#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)
                           {
                                       srpintf(thePath, "%s/%s", path, fa.name);
                                       findAllCodes(thePath);
                                       sindALLDirs(thePath);
                            }
               }while (_findnext(handle,&fa) ==0);
               
               _finclose(handle);
         }
         
      int main()
      {
                char path = ".";
               
                printf("计算中...\n");
               
                findAllCodes(path);
                findALLDirs(path);
               
                printf("目前你总共写了%ld 行代码!\n\n", total);
                system("pause");
               
                return 0;
      }

青出于蓝 发表于 2021-8-24 16:28:22

是不是没有关闭上一次运行的exe?

Simon011115 发表于 2021-8-24 16:43:06

青出于蓝 发表于 2021-8-24 16:28
是不是没有关闭上一次运行的exe?

关了{:10_266:}

人造人 发表于 2021-8-24 16:49:51

对了 4 次吗?然后下面这些单词没有对出来?还是不够认真,要一个字符一个字符的对
srpintf
sindALLDirs
_finclose

你都不看报错信息的吗?

Simon011115 发表于 2021-8-24 23:05:52

人造人 发表于 2021-8-24 16:49
对了 4 次吗?然后下面这些单词没有对出来?还是不够认真,要一个字符一个字符的对
srpintf
sindALLDirs
...

谢谢大佬,刚开始接触编程,我以为不闪红就没错呢{:10_266:}
页: [1]
查看完整版本: 求助大佬,为什么我程序运行给我显示 [Error] ld retur...