鱼C论坛

 找回密码
 立即注册
查看: 847|回复: 5

[已解决]c语言第一节课后作业遇到问题

[复制链接]
发表于 2021-7-28 17:24:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. #include<io.h>
  2. #include<direct.h>
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #include<string.h>

  6. #define MAX   256

  7. long total;

  8. int countLines(const char *filename);
  9. void findAllCodes(const char *path) ;
  10. void finfAllFiles(const char *path);

  11. int countLines(const char *filename)
  12. {
  13.                 FILE *fp;
  14.                  int count = 0;
  15.                  int temp;
  16.          
  17.                  if ((fp = fopen(filename,"r")) == NULL)
  18.                  {
  19.                      fprintf(stderr,"Can not open the file:%s\n",filename);
  20.                         return 0;
  21.                 }

  22.              while ((temp = fgetc(fp)) != EOF)
  23.                  {
  24.                      if (temp == '\n')
  25.                      {
  26.                               count++;
  27.                         }
  28.           }
  29.       
  30.       fclose(fp);

  31.       return count;
  32. }

  33. void findAllCodes(const char *path)
  34. {
  35.             struct_finddata_t fa;
  36.             long handle;
  37.             char thePath[MAX],target[MAX];
  38.             
  39.             strcpy(thePath,path);
  40.             if((handle =_findfirst(strcat(thePath,"/*.c"),&fa)) !=-1L)
  41.             {
  42.                     do
  43.                     {
  44.                             sprintf(targrt,"%s/%s",path,fa.name);
  45.                             total += countLines(target);
  46.                 }while (_findnext(handle,&fa) == 0);
  47.    
  48.                
  49.                 _findclose(handle);
  50. }
  51.                
  52. void findALLDirs(const char *path)
  53. {
  54.             struct_finddata_t fa;
  55.             long handle;
  56.             char thePath[MAX];
  57.        
  58.             strcpy(thePath,path);
  59.             if ((handle =  _findfirst(strca(thePath,"/*"),&fa)) == -1L)
  60.             {
  61.                         fprintf(stderr,"The path %s is wrong!\n",path);
  62.                         return;
  63.                 }
  64.        
  65.                 do
  66.                 {
  67.                         if (!strcmp(fa.name,".")|| !strcmp(fa.name,".."))
  68.                                            continue;
  69.                   
  70.                 if(fa.attrib == _A_SUBDIR)
  71.             {
  72.                                 sprintf(thePath,"&s/&s",path,fa,name);
  73.                                   findAllCodes(thePath);
  74.                                  findALLDirs(thePath);
  75.                }
  76.     }while(_findnext(handle,&fa) == 0);
  77.    
  78.     _findclose(handle);
  79. }

  80. int main()
  81. {
  82.         char path{MAX = ".";
  83.        
  84.         printf("计算中...\n");
  85.        
  86.         findAllCodes(path);
  87.         findALLDirs(path);
  88.        
  89.         printf("目前你总共写了%ld行代码\n\n",total);
  90.         system("pause");
  91.        
  92.         return 0;
  93. }

复制代码


第43行在运行时报错:was not declare,不知道为什么?
最佳答案
2021-7-28 17:49:36
  1. void finfAllFiles(const char *path);
复制代码
14行void findALLFiles(const char *path);
  1. struct _finddata_t
复制代码
43 62行,这中间有空格
  1. sprintf(targrt,"%s/%s",path,fa.name);
复制代码
52行target,拼写错了
  1. [/code]55行少个大括号
  2. [code]if ((handle =  _findfirst(strca(thePath,"/*"),&fa)) == -1L)
复制代码
67行strcat
  1.                                 sprintf(thePath,"&s/&s",path,fa,name);
复制代码
80行 fa.name
  1.         char path{MAX = ".";
复制代码
91行path[MAX]

编程果然很难啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-28 17:49:36 | 显示全部楼层    本楼为最佳答案   
  1. void finfAllFiles(const char *path);
复制代码
14行void findALLFiles(const char *path);
  1. struct _finddata_t
复制代码
43 62行,这中间有空格
  1. sprintf(targrt,"%s/%s",path,fa.name);
复制代码
52行target,拼写错了
  1. [/code]55行少个大括号
  2. [code]if ((handle =  _findfirst(strca(thePath,"/*"),&fa)) == -1L)
复制代码
67行strcat
  1.                                 sprintf(thePath,"&s/&s",path,fa,name);
复制代码
80行 fa.name
  1.         char path{MAX = ".";
复制代码
91行path[MAX]

编程果然很难啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-28 18:28:03 | 显示全部楼层
逃兵 发表于 2021-7-28 17:49
14行void findALLFiles(const char *path);
43 62行,这中间有空格
52行target,拼写错了

其实不难,就是自己不认真,抄都能抄错,别人能怎么办

^_^
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-28 18:36:02 | 显示全部楼层
刚学谁都这样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-29 09:24:08 | 显示全部楼层
逃兵 发表于 2021-7-28 17:49
14行void findALLFiles(const char *path);
43 62行,这中间有空格
52行target,拼写错了

谢谢,像空号这种刚开始那是有点难找
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-29 09:24:37 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 04:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表