DEV C++ 中运行程序错误后 某行代码被红色条框起来是什么意思
#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=".";
print("计算中...\n");
findALLCodes(path);
findALLDirs(path);
printf("目前你总共写了%ld行代码!\n\n",total);
system("pause");
return 0;
} void findALLCodes(const char *path);这条代码下面那个大括号会被框起 语法错误呗 巴巴鲁 发表于 2020-10-12 20:18
语法错误呗
哪错了呀 巴巴鲁 发表于 2020-10-12 20:18
语法错误呗
大哥 大哥 哪里错了呀 奔跑的小鸟11 发表于 2020-10-12 21:11
大哥 大哥 哪里错了呀
这是你自己敲得? 巴巴鲁 发表于 2020-10-12 21:21
这是你自己敲得?
抄的小甲鱼的 奔跑的小鸟11 发表于 2020-10-12 21:38
抄的小甲鱼的
不知道那个大括号为什么错了 巴巴鲁 发表于 2020-10-12 21:21
这是你自己敲得?
大哥 大哥 求支招啊 你的程序共有三个错误,已经帮你修改了,看程序中的注释处
#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; // 定义结构体类型与名称之间( struct 后面)少一个空格
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"); //printf()写成了print()
findALLCodes(path);
findALLDirs(path);
printf("目前你总共写了%ld行代码!\n\n",total);
system("pause");
return 0;
}
风过无痕1989 发表于 2020-10-13 23:42
你的程序共有三个错误,已经帮你修改了,看程序中的注释处
额 能运行了 但是运行后不能读出代码行数 奔跑的小鸟11 发表于 2020-10-15 22:43
额 能运行了 但是运行后不能读出代码行数
你将第41行 : if((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L) 改成下面的语句:
if((handle = _findfirst(strcat(thePath, "/*.cpp"), &fa)) != -1L) 风过无痕1989 发表于 2020-10-15 23:06
你将第41行 : if((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L) 改成下面的语句:
if ...
大佬还是不行 奔跑的小鸟11 发表于 2020-10-16 13:04
大佬还是不行
显示的是can‘t open the file 本帖最后由 风过无痕1989 于 2020-10-16 15:10 编辑
奔跑的小鸟11 发表于 2020-10-16 13:06
显示的是can‘t open the file
这是复制我发在 10楼的程序的运行结果
奔跑的小鸟11 发表于 2020-10-16 13:06
显示的是can‘t open the file
对了,在你的文件包里不能有同名的EXE文件,否则需要运行的程序就有可能打不开
提示你有错误,需要改正,比如标点要切换到英文输入。
你仔细对一下小甲鱼的作业就能发现 风过无痕1989 发表于 2020-10-16 14:56
对了,在你的文件包里不能有同名的EXE文件,否则需要运行的程序就有可能打不开
我这咋又有C 又有C++的啊 奔跑的小鸟11 发表于 2020-10-16 20:52
我这咋又有C 又有C++的啊
有,没有关系,有关系的是你要运行的那个是C,还是C++ 奔跑的小鸟11 发表于 2020-10-16 20:52
我这咋又有C 又有C++的啊
我这里有 test.c、test.cpp,还有test2.c、test3.c、test4.c,这些是因为回答问题所需要而建立的,它们的存在(只要 test.exe 不存在就行,这里要说明一下, test.exe 并不一定不能存在,但有些时候它的存在就会出问题,所以,遇到文件不能打开,就应想到是它的存在,删除后再重新启动 DEV运行,就不会存在打不开的情况发生了),并不影响 test.c ( 或 test.cpp )的运行
页:
[1]
2