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[MAX], target[MAX];

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[MAX];

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[MAX] = ".";

printf("计算中...\n");

findAllCodes(path);

findALLDirs(path);

printf("目前你总共写了 %ld 行代码!\n\n", total);

system("pause");

return 0;

}

回答

https://blog.csdn.net/lggrief/article/details/52797208?utm_source=blogxgwz3

以上是 c语言计算当前所打代码行数的程序运行时出现问题 的全部内容, 来源链接: utcz.com/a/50699.html

回到顶部