单字轩 发表于 2021-7-17 18:00:14

关于[课后作业] S1E2代码提示错误

就是这个作业里的
windows的第17行的代码
鱼的贴子里第17行是   {    这个
我打的也是这个{
但是就是提示错误
就显示了这一个地方是错的
搞不懂{:10_266:}

逃兵 发表于 2021-7-17 18:01:54

代码发全,也可能是上面少个分号啥的,也可能是符号用的中文

Super丶钢铁侠 发表于 2021-7-17 18:19:20

它不一定是{这个的问题,有可能是该行附近有语句错误导致的,你把代码全部发出来看下

单字轩 发表于 2021-7-17 20:35:49


#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX      256

long total;

int countLines(const char *filenmae);
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;
}

vido 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);
}

vido findALLDirs(const char *path)
{
             struct _finddata_t fa;
             long handle;
             char thePath;
          
             strcpy(thePath, path);
             if((handle = _findfirst(strcat(thePath, "/*.c"), &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);
                                       findDIRS(thepath);
                                }
              }while (_findnext(handle, &fa) == 0);
               
               _findcloose(handle);
}      

int main()
{
             char path = ".";
       
             printf("计算中...\n");
          
             findALLCodes(path);
             findALLDris(path);
          
             printf("目前你总共写了 %ld 行代码! \n\n, todal");
             system("pause");
          
             return 0;
}

单字轩 发表于 2021-7-17 20:36:28

我打的是这样的

单字轩 发表于 2021-7-17 20:37:01

逃兵 发表于 2021-7-17 18:01
代码发全,也可能是上面少个分号啥的,也可能是符号用的中文


#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX      256

long total;

int countLines(const char *filenmae);
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;
}

vido 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);
}

vido findALLDirs(const char *path)
{
             struct _finddata_t fa;
             long handle;
             char thePath;
          
             strcpy(thePath, path);
             if((handle = _findfirst(strcat(thePath, "/*.c"), &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);
                                       findDIRS(thepath);
                                }
              }while (_findnext(handle, &fa) == 0);
               
               _findcloose(handle);
}      

int main()
{
             char path = ".";
       
             printf("计算中...\n");
          
             findALLCodes(path);
             findALLDris(path);
          
             printf("目前你总共写了 %ld 行代码! \n\n, todal");
             system("pause");
          
             return 0;
}

单字轩 发表于 2021-7-17 20:37:31

Super丶钢铁侠 发表于 2021-7-17 18:19
它不一定是{这个的问题,有可能是该行附近有语句错误导致的,你把代码全部发出来看下


#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX      256

long total;

int countLines(const char *filenmae);
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;
}

vido 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);
}

vido findALLDirs(const char *path)
{
             struct _finddata_t fa;
             long handle;
             char thePath;
          
             strcpy(thePath, path);
             if((handle = _findfirst(strcat(thePath, "/*.c"), &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);
                                       findDIRS(thepath);
                                }
              }while (_findnext(handle, &fa) == 0);
               
               _findcloose(handle);
}      

int main()
{
             char path = ".";
       
             printf("计算中...\n");
          
             findALLCodes(path);
             findALLDris(path);
          
             printf("目前你总共写了 %ld 行代码! \n\n, todal");
             system("pause");
          
             return 0;
}

万千只cnm 发表于 2021-7-17 21:34:26

int countLines(const char *filename);
多了一个分号

此方星河 发表于 2021-7-18 07:28:49

#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX      256

long total;

int countLines(const char *filenmae);
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;
}

vido 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);
}

vido findALLDirs(const char *path)
{
          struct _finddata_t fa;
          long handle;
          char thePath;

          strcpy(thePath, path);
          if((handle = _findfirst(strcat(thePath, "/*.c"), &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);
                                     findDIRS(thepath);
                            }
            }while (_findnext(handle, &fa) == 0);

             _findcloose(handle);
}

int main()
{
          char path = ".";

         printf("计算中...\n");

         findALLCodes(path);
         findALLDris(path);

         printf("目前你总共写了 %ld 行代码! \n\n, todal");
         system("pause");

         return 0;
}

逃兵 发表于 2021-7-18 09:29:46

第12行拼写错误
int countLines(const char *filenmae);
修改为
int countLines(const char *filename);

第13行 大小写错误
void findALLCodes(const char *path);
修改为
void findAllCodes(const char *path);

第16行 多打了个分号
int countLines(const char *filename);
修改为
int countLines(const char *filename)

41行 拼写错误,void拼写成了vido 大小写错误 ALL改为all
vido findALLCodes(const char *path)
修改为
void findAllCodes(const char *path)

45行 符号错误,分号打成了逗号
char thePath, target,
修改为
char thePath, target;

60行 拼写错误 void 拼写成了 vido
vido findALLDirs(const char *path)
修改为
void findALLDirs(const char *path)

67行誊抄错误
if((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L)
修改为
if((handle = _findfirst(strcat(thePath, "/*"), &fa)) == -1L)


75行少打个.
if (!strcmp(fa.name, ".") || !strcmp(fa.name,"."))
修改为
if (!strcmp(fa.name, ".") || !strcmp(fa.name,".."))

80行少打个/
sprintf(thePath, "%s%s", path, fa.name);
修改为
sprintf(thePath, "%s/%s", path, fa.name);

81行 大小写错误,thepath中p为小写,应为thePath ALL应为All
findALLCodes(thepath);
修改为
findAllCodes(thePath);

82行 大小写错误,thepath中p为小写,应为thePath
函数名错误findDIRS应为findALLDirs
findDIRS(thepath);
修改为
findALLDirs(thePath);

96行拼写错误
findALLDris(path);
修改为
findALLDirs(path);

98行
printf("目前你总共写了 %ld 行代码! \n\n, todal");
修改为
printf("目前你总共写了 %ld 行代码! \n\n", total);

完整代码

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

单字轩 发表于 2021-7-18 21:07:39

逃兵 发表于 2021-7-18 09:29
第12行拼写错误

修改为


谢谢大佬{:10_298:}

hukailun2 发表于 2021-7-24 13:23:17


#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("目前你总共写了%1d 行代码! \n\n", total);
             system("pause");
             
             return 0;
}
大佬能帮帮我看看错哪里了吗,我是一直0行

单字轩 发表于 2021-7-25 16:10:31

hukailun2 发表于 2021-7-24 13:23
#include
#include
#include


我也是新手啊{:10_277:}
你到求助贴去发个帖子
会有人回你的

lzwy 发表于 2021-7-26 17:41:10

请问为什么只有计算中不显示写了几行代码

单字轩 发表于 2021-7-27 17:55:56

lzwy 发表于 2021-7-26 17:41
请问为什么只有计算中不显示写了几行代码

我是新手也不懂啊{:10_266:}
你发个帖子问问吧
页: [1]
查看完整版本: 关于[课后作业] S1E2代码提示错误