课后作业S1E2的《统计当前目录及所有子目录下,C 语言源文件的代码总行数。》
爲什麽出來的結果是0呢?我的代碼沒有敲錯,程序可以運行
原代码和你的代码发上来。
你指定的目录? 2楼,目录不太可能,他本身是有代码量的!(可能)
-----------------------------------------------------------------------
我运行的也是0,估计小甲鱼写错了。等你学到相关知识后应该就可以改正了{:10_256:} 额外减小 发表于 2022-8-5 20:28
我运行的也是0,估计小甲鱼写错了。等你学到相关知识后应该就可以改正了
应该没有写错,我运行是有结果的 临时号 发表于 2022-8-5 20:37
应该没有写错,我运行是有结果的
那就奇怪了,可能是编译器不一样吧,我跟甲鱼不是用一种的软件 他统计的是他所在目录中除他以外的代码量,可能楼主同目录中没有其他代码文件吧 刘子诺 发表于 2022-8-5 20:06
2楼,目录不太可能,他本身是有代码量的!(可能)
------------------------------------------------------ ...
{:5_102:} 164342146 发表于 2022-8-6 19:11
他统计的是他所在目录中除他以外的代码量,可能楼主同目录中没有其他代码文件吧
我的就把他本身算进去了
{:5_94:} 我的也是0,而且我的是复制进去的 ba21 发表于 2022-8-5 19:05
原代码和你的代码发上来。
你指定的目录?
#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;
}
这个是我的代码
1074953350 发表于 2022-8-14 17:09
#include
#include
#include
我用的是VScode 我把小甲鱼的Windows代码复制粘贴并不能显示代码行数 提示 cd "d:\soft\visual studio code\xiangmu\" && gcc a.c -o a && "d:\soft\visual studio code\xiangmu\"a
exited with code=3221225477 in 0.221 seconds 求助
ba21 发表于 2022-8-14 18:58
啥意思 把目录复制进去吗? FWJ-Einstein 发表于 2022-8-16 09:00
啥意思 把目录复制进去吗?
char path = ".";
指定路径。
char path = "D:\\ctest"; 楼主是用什么编译器?是vs2019吗 我也是会出现这个问题,但是它总是显示我写了7行代码。但我已经将每4课的作业代码都写完,放到子文件夹里面去了。
页:
[1]