Suby1013 发表于 2021-9-5 23:00:35

《带你学C带你飞》课后作业

《带你学C带你飞》p2的课后作业里一直有 'target' was not declared in this scope怎么解决啊
纯小白!!

Suby1013 发表于 2021-9-5 23:02:16

file:///C:/Users/Suby/Desktop/%E6%9C%AA%E5%91%BD%E5%90%8D2.cpp

大马强 发表于 2021-9-6 00:06:22

Suby1013 发表于 2021-9-5 23:02
file:///C:/Users/Suby/Desktop/%E6%9C%AA%E5%91%BD%E5%90%8D2.cpp

你这我啥都没看到

jhq999 发表于 2021-9-6 06:47:13

大马强 发表于 2021-9-6 00:06
你这我啥都没看到

你不是看到文件在他电脑里的路径了吗?{:5_109:}

大马强 发表于 2021-9-6 06:52:03

jhq999 发表于 2021-9-6 06:47
你不是看到文件在他电脑里的路径了吗?

那也是{:10_269:}

逃兵 发表于 2021-9-6 08:23:34

没有声明target变量
你别发图片,发代码

fionaeng 发表于 2021-9-6 09:11:44

先定义变量再使用

Suby1013 发表于 2021-9-6 12:36:07


#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 findA11Codes(const char *path)
{
        struct _finddata_t fa;
        long handle;
        char thePath, targer;
       
        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("pauese");
       
        return 0;
}

Suby1013 发表于 2021-9-6 12:36:40

逃兵 发表于 2021-9-6 08:23
没有声明target变量
你别发图片,发代码

啊 好了好了

Suby1013 发表于 2021-9-6 12:37:27

大马强 发表于 2021-9-6 00:06
你这我啥都没看到

{:10_266:}现在呢

大马强 发表于 2021-9-6 14:13:13

#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("pauese");
      
      return 0;
}

大马强 发表于 2021-9-6 14:14:24

大马强 发表于 2021-9-6 14:13


最后一句
system("pause");

大马强 发表于 2021-9-6 14:18:51

大马强 发表于 2021-9-6 14:13


41行的函数名,和45的变量名
页: [1]
查看完整版本: 《带你学C带你飞》课后作业