代码求助
我直接复制的小甲鱼S1E2的 课后习题代码 但是执行后代码行数提示的是 0行, 这是什么原因 求解! 这个代码只统计文件扩展名是 .c 的源代码文件,你可以把你的 .cpp 文件复制一个副本,重命名为 .c 试试看呢。 jackz007 发表于 2022-10-1 19:02这个代码只统计文件扩展名是 .c 的源代码文件,你可以把你的 .cpp 文件复制一个副本,重命名为 .c ...
不行 没成功
本帖最后由 jackz007 于 2022-10-1 19:43 编辑
zy990106 发表于 2022-10-1 19:29
不行 没成功
贴出你的代码文本,注意,一定要贴入代码框。代码框功能按钮带有 "<>" 图案,鼠标按下后,即可弹出代码框。 jackz007 发表于 2022-10-1 19:35
贴出你的代码文本,注意,一定要贴入代码框。代码框功能按钮带有 "" 图案,鼠标按下后,即可弹出代码框 ...
大佬 教教我 我不会 嘿嘿 怪不好意思的
代码框: #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;
} zy990106 发表于 2022-10-1 20:08
大佬 教教我 我不会 嘿嘿 怪不好意思的
#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-10-1 20:11
代码框:
谢谢
jackz007 发表于 2022-10-1 19:35
贴出你的代码文本,注意,一定要贴入代码框。代码框功能按钮带有 "" 图案,鼠标按下后,即可弹出代码框 ...
#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;
} zy990106 发表于 2022-10-1 20:17
我可以非常负责任地告诉你,这个代码无错,你现在需要确定的是,在编译好的 exe 文件所在的目录内真的有 .c 文件存在,实在不行,可以造一个这样的文件,用作测试。 jackz007 发表于 2022-10-1 20:34
我可以非常负责任地告诉你,这个代码无错,你现在需要确定的是,在编译好的 exe 文件所在的目录 ...
我该怎么做呢
zy990106 发表于 2022-10-1 20:53
我该怎么做呢
问题还没解决? jackz007 发表于 2022-10-1 21:24
问题还没解决?
对 我跑了好几次 还是0 你说的那个 .c 我不会 {:10_266:} 本帖最后由 jackz007 于 2022-10-1 21:51 编辑
zy990106 发表于 2022-10-1 21:40
对 我跑了好几次 还是0 你说的那个 .c 我不会
你应该知道编译好的 exe 文件所在目录吧?在这个目录内,用 windows 记事本创建一个文本文件,内容随便写一些乱七八糟的东西,多弄几行,然后以扩展名为 .c 加以保存(假装是个 C 语言源程序文件),再运行程序试试。 jackz007 发表于 2022-10-1 21:50
你应该知道编译好的 exe 文件所在目录吧?在这个目录内,用 windows 记事本创建一个文本文件,内 ...
欧克 jackz007 发表于 2022-10-1 21:50
你应该知道编译好的 exe 文件所在目录吧?在这个目录内,用 windows 记事本创建一个文本文件, ...
谢谢 解决了 就是文件格式的问题
{:7_146:}
页:
[1]