疯七天南 发表于 2020-7-20 15:55:10

为啥我按照第一节抄的数代码行数的运行了,结果是写了0行代码

为啥我按照第一节抄的数代码行数的运行了,结果是写了0行代码?求大佬们讲解

zltzlt 发表于 2020-7-20 15:58:26

将你的文件后缀名一律改为 .c

疯七天南 发表于 2020-7-20 16:06:24

zltzlt 发表于 2020-7-20 15:58
将你的文件后缀名一律改为 .c

还是不行呀,会显示无法打开那个几个文件

chxchxkkk 发表于 2020-7-21 10:55:27

无代码无图无真相

疯七天南 发表于 2020-7-21 20:40:56

chxchxkkk 发表于 2020-7-21 10:55
无代码无图无真相

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

疯七天南 发表于 2020-7-21 20:41:32

chxchxkkk 发表于 2020-7-21 10:55
无代码无图无真相

怎么发图呀?

疯七天南 发表于 2020-7-21 20:42:21

chxchxkkk 发表于 2020-7-21 10:55
无代码无图无真相

运行结果是这个:

疯七天南 发表于 2020-7-21 20:42:56

疯七天南 发表于 2020-7-21 20:42
运行结果是这个:

计算中...
Can not open the file :.代码行数.c
Can not open the file :.数字位数函数.c
Can not open the file :.未命名1.c
Can not open the file :.测试.c
Can not open the file :.飞机.c
目前你总共写了0 行代码!

请按任意键继续. . .

风过无痕1989 发表于 2020-7-21 22:09:47

第十二行是小写 All,第十三行才是大写 ALL:

void findAllCodes(const char *path);
void findALLFiles(const char *path);

其他的地方,你慢慢检查吧,大小写一定要注意的

405794672 发表于 2020-7-24 08:40:15

我没有抄,我是直接复制过去的。倒是正常的。因此,很可能你抄错了。

XYcarpenter 发表于 2020-7-24 11:24:17

一共也才一百来行,逐行逐字对比,你就知道哪里抄错了。

VaeSummerTime 发表于 2020-7-24 19:26:07

你要放在子文件之外,也就是你源码文件上一层文件夹就好了,我之前也是这问题
页: [1]
查看完整版本: 为啥我按照第一节抄的数代码行数的运行了,结果是写了0行代码