FishC 发表于 2024-1-12 20:05:22

顶聪明的芥子 发表于 2024-01-12 20:04
我的意思是它不是一行一行的,你能再发一遍吗?
我是 ...

非常抱歉给您带来不便。这是修正后的代码,现在应该可以正常显示了:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <io.h>

#define MAX 256
long total;

int countLines(const char *filename);
void findAllCodes(const char *path);
void findALLDirs(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;
}

这次应该可以正确显示了,如有其他问题,请随时告诉我。祝您编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

顶聪明的芥子 发表于 2024-1-12 21:58:42

FishC 发表于 2024-1-12 20:02
非常抱歉给您带来困扰,看起来在代码中出现了一些问题。在修复之前,我想先确认一下您使用的开发环境是 ...

在吗

FishC 发表于 2024-1-12 21:58:46

顶聪明的芥子 发表于 2024-01-12 21:58
在吗

是的,我在这里。请告诉我您使用的是哪个编译器或开发环境。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

顶聪明的芥子 发表于 2024-1-12 22:01:32

FishC 发表于 2024-1-12 21:58
是的,我在这里。请告诉我您使用的是哪个编译器或开发环境。

以上回复来自 FishC AI 小助理,如未能 ...

Dev c

FishC 发表于 2024-1-12 22:01:44

顶聪明的芥子 发表于 2024-01-12 22:01
Dev c

好的,Dev C++是一个流行的集成开发环境(IDE),用于C和C++编程。请确保你已经正确安装了Dev C++环境,并且已经配置好编译器。

接下来,我会给你提供一些关于使用Dev C++的提示,以防止出现常见的错误。

1. 确保你的代码文件保存为正确的扩展名:C源文件应该以".c"结尾。

2. 检查是否正确引入了所需的头文件。在你的程序中,你应该添加以下头文件来引入标准输入输出函数:

   #include <stdio.h>

3. 检查你的代码中是否存在语法错误。如果你在编写代码时有遗漏分号、括号不配对等问题,那么编译时就会显示错误。

4. 在运行程序之前,请确保你的代码没有逻辑错误。可以使用调试工具或添加一些简单的打印语句来追踪代码的执行过程,以帮助你找出问题所在。

5. 如果仍然遇到错误,请将错误信息粘贴在这里,我会尽力帮助你解决问题。

希望这些提示能对你有所帮助!如果你还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

顶聪明的芥子 发表于 2024-1-13 08:57:41

FishC 发表于 2024-1-12 22:01
好的,Dev C++是一个流行的集成开发环境(IDE),用于C和C++编程。请确保你已经正确安装了Dev C++环境 ...

为什么一定要是.c结尾,我们老师要求是.cpp结尾

FishC 发表于 2024-1-13 08:57:53

顶聪明的芥子 发表于 2024-01-13 08:57
为什么一定要是.c结尾,我们老师要求是.cpp结尾

非常抱歉给您带来困惑。C++文件的扩展名确实应该是`.cpp`,而不是`.c`。对于使用C++编写的程序,特别是在Dev C++这样的C++集成开发环境中,代码文件应该以`.cpp`结尾。因此,在保存文件时,请确保将文件名以`.cpp`作为扩展名保存。

对于您提供的代码,只需将`main`函数中的`path`改为一个正确的字符串常量即可,例如`char path[] = ".";`。这样就可以根据当前目录进行代码统计。在Dev C++中,使用`.cpp`作为文件扩展名,然后按照我的建议修改后的代码应该能正常运行了。如果还有其他问题,请随时提问。祝您编程顺利!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

顶聪明的芥子 发表于 2024-1-13 09:03:54

FishC 发表于 2024-1-13 08:57
非常抱歉给您带来困惑。C++文件的扩展名确实应该是`.cpp`,而不是`.c`。对于使用C++编写的程序,特别是 ...

代码中就是`char path[] = ".";`,没懂你说要怎么改。所以是用.c的扩展名合适,还是.cpp的扩展名合适,有什么区别吗

FishC 发表于 2024-1-13 09:04:08

顶聪明的芥子 发表于 2024-01-13 09:03
代码中就是`char path = ".";`,没懂你说要怎么改。所 ...

非常抱歉给您造成了混淆。基于您的老师要求,使用`.cpp`作为文件扩展名是合适的,因为这意味着您正在编写C++代码。

在C++中,`.cpp`是一种常见的扩展名,用于表示C++源代码文件。而`.c`则通常用于表示C语言源代码文件。

C和C++是两种不同的编程语言,虽然它们有很多相似之处,但也有一些细微的差异。如果您使用的是C++编译器,建议将文件扩展名设置为`.cpp`以明确表明您正在编写C++代码。

在编写C++程序时,您可以使用更多的C++特性,例如面向对象编程、模板等。而使用C扩展名编写C++代码可能会导致一些问题,例如编译器无法识别某些C++语法。

综上所述,按照您的老师要求,应该使用`.cpp`作为文件扩展名来保持代码的一致性,并且可以充分利用C++语言提供的特性。希望这样解答能够帮助您理解。如果还有其他问题,请随时提问。祝您编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: 1 [2]
查看完整版本: 运行文件之后,显示错误