看我表演了 发表于 2022-3-1 20:39:42

求大佬看看

最开始按小甲鱼的模板写了一个能记录打了多少行代码的程序,但为啥重装系统以后代码转移过去了但显示代码行数错误了呢


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

大马强 发表于 2022-3-1 22:27:41

会不会是还有其他的.c文件存在

看我表演了 发表于 2022-3-3 15:17:43

大马强 发表于 2022-3-1 22:27
会不会是还有其他的.c文件存在

好像没有吧,而且写了新的以后他还是保持不变{:10_266:}

大马强 发表于 2022-3-3 16:22:41

看我表演了 发表于 2022-3-3 15:17
好像没有吧,而且写了新的以后他还是保持不变

输出0?

看我表演了 发表于 2022-3-5 15:49:39

大马强 发表于 2022-3-3 16:22
输出0?

输出101

大马强 发表于 2022-3-5 16:59:20

看我表演了 发表于 2022-3-5 15:49
输出101

101 不对?
不就是101行吗?

看我表演了 发表于 2022-3-6 00:35:09

大马强 发表于 2022-3-5 16:59
101 不对?
不就是101行吗?

这个之前能统计我写过的所有代码的行数,现在我继续写它的数目不变了

大马强 发表于 2022-3-6 00:49:00

看我表演了 发表于 2022-3-6 00:35
这个之前能统计我写过的所有代码的行数,现在我继续写它的数目不变了

代码要放到同一个目录下的,你试试放两个代码文件放到桌面再运行试试

看我表演了 发表于 2022-3-6 00:52:53

大马强 发表于 2022-3-6 00:49
代码要放到同一个目录下的,你试试放两个代码文件放到桌面再运行试试

还是不行{:10_266:}

大马强 发表于 2022-3-6 00:54:54

emmmm,一直都是101吗

大马强 发表于 2022-3-6 00:56:44

要不你试试再原文件加个几行
//a
//b
//c
//d
看看有无变化

看我表演了 发表于 2022-3-6 00:57:55

大马强 发表于 2022-3-6 00:54
emmmm,一直都是101吗

嗯,自从重装系统以后旧版dev卸载了,我就把之前备份的dev和写的代码重新导到电脑,然后就运行只显示101了

大马强 发表于 2022-3-6 00:57:56

还有其实空一行也回统计进去,小甲鱼的是几行来着?

看我表演了 发表于 2022-3-6 01:07:22

大马强 发表于 2022-3-6 00:57
还有其实空一行也回统计进去,小甲鱼的是几行来着?

102

大马强 发表于 2022-3-6 01:07:56

会不会就只是比你多空了一行

看我表演了 发表于 2022-3-6 01:08:53

大马强 发表于 2022-3-6 00:56
要不你试试再原文件加个几行

看看有无变化

我以为软件问题就换成小熊猫dev,现在都不显示了{:10_269:}

大马强 发表于 2022-3-6 01:10:26

看我表演了 发表于 2022-3-6 01:08
我以为软件问题就换成小熊猫dev,现在都不显示了

小熊猫是啥?
第一次听过{:10_266:}

看我表演了 发表于 2022-3-6 10:50:39

大马强 发表于 2022-3-6 01:10
小熊猫是啥?
第一次听过

嗷现在是在哪个文件夹就显示那个文件夹里代码的行数,以前是放最外面也能显示总共打的行数{:10_282:}

大马强 发表于 2022-3-6 11:13:50

看我表演了 发表于 2022-3-6 10:50
嗷现在是在哪个文件夹就显示那个文件夹里代码的行数,以前是放最外面也能显示总共打的行数

应该是检查当层目录下的所以代码数量

看我表演了 发表于 2022-3-6 11:30:47

大马强 发表于 2022-3-6 11:13
应该是检查当层目录下的所以代码数量

哪有啥办法能还原到以往的形式呢{:10_262:}
页: [1]
查看完整版本: 求大佬看看