鱼C论坛

 找回密码
 立即注册
查看: 2076|回复: 14

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

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

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

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

x
就是这个作业里的
windows的第17行的代码
鱼的贴子里第17行是   {    这个
我打的也是这个  {
但是就是提示错误
就显示了这一个地方是错的
搞不懂
最佳答案
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[MAX], target[MAX],
修改为
char thePath[MAX], target[MAX];

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[MAX], target[MAX];
        
        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[MAX];
        
        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[MAX] = ".";
        
        printf("计算中...\n");
        
        findAllCodes(path);
        findALLDirs(path);
        
        printf("目前你总共写了 %ld 行代码!\n\n", total);
        system("pause");
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-17 18:01:54 | 显示全部楼层
代码发全,也可能是上面少个分号啥的,也可能是符号用的中文
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-17 18:19:20 | 显示全部楼层
它不一定是  {  这个的问题,有可能是该行附近有语句错误导致的,你把代码全部发出来看下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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[MAX], target[MAX],
             
              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[MAX];
             
              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[MAX] = ".";
          
             printf("计算中...\n");
            
             findALLCodes(path);
             findALLDris(path);
            
             printf("目前你总共写了 %ld 行代码! \n\n, todal");
             system("pause");
            
             return 0;
 }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-17 20:36:28 | 显示全部楼层
我打的是这样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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[MAX], target[MAX],
             
              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[MAX];
             
              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[MAX] = ".";
          
             printf("计算中...\n");
            
             findALLCodes(path);
             findALLDris(path);
            
             printf("目前你总共写了 %ld 行代码! \n\n, todal");
             system("pause");
            
             return 0;
 }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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[MAX], target[MAX],
             
              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[MAX];
             
              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[MAX] = ".";
          
             printf("计算中...\n");
            
             findALLCodes(path);
             findALLDris(path);
            
             printf("目前你总共写了 %ld 行代码! \n\n, todal");
             system("pause");
            
             return 0;
 }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-17 21:34:26 | 显示全部楼层
int countLines(const char *filename);
多了一个分号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[MAX], target[MAX],

          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[MAX];

          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[MAX] = ".";

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

         findALLCodes(path);
         findALLDris(path);

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

         return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[MAX], target[MAX],
修改为
char thePath[MAX], target[MAX];

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[MAX], target[MAX];
        
        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[MAX];
        
        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[MAX] = ".";
        
        printf("计算中...\n");
        
        findAllCodes(path);
        findALLDirs(path);
        
        printf("目前你总共写了 %ld 行代码!\n\n", total);
        system("pause");
        
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-18 21:07:39 | 显示全部楼层
逃兵 发表于 2021-7-18 09:29
第12行拼写错误

修改为

谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[MAX],target[MAX];
            
             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[MAX];
               
                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[MAX] = ".";
             
             printf("计算中...\n");
             
             findAllCodes(path);
             findALLDirs(path);
             
             printf("目前你总共写了%1d 行代码! \n\n", total);
             system("pause");
             
             return 0;
}
大佬能帮帮我看看错哪里了吗,我是一直0行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-25 16:10:31 | 显示全部楼层
hukailun2 发表于 2021-7-24 13:23
#include
#include
#include

我也是新手啊
你到求助贴去发个帖子
会有人回你的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-26 17:41:10 | 显示全部楼层
请问为什么只有计算中不显示写了几行代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-27 17:55:56 | 显示全部楼层
lzwy 发表于 2021-7-26 17:41
请问为什么只有计算中不显示写了几行代码

我是新手也不懂啊
你发个帖子问问吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 20:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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