1040335441 发表于 2021-5-17 01:00:30

ok

jia1230 发表于 2021-5-17 08:02:15

用VS 编译这个7个错误啊 {:10_269:}

狼村的希望 发表于 2021-5-17 14:56:46

MMMUFASA 发表于 2021-5-17 16:10:52

打卡!

accp.an 发表于 2021-5-17 16:34:13

幸好有点linux基础

920311602 发表于 2021-5-17 17:32:03

真不错

会玩手机的猫 发表于 2021-5-17 17:35:25

做完了

熊小虎 发表于 2021-5-17 20:10:36

代码咋有个错误

IU李知恩V 发表于 2021-5-17 21:40:20


#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;
}

KnightY泉 发表于 2021-5-17 21:43:35

哈哈哈   一个一个对比,终于打出来了109行过来看下答案

菜菜的工科狗 发表于 2021-5-18 08:31:08

1

jessica222222 发表于 2021-5-18 08:58:04

照着敲一遍和复制原代码都是这个结果,怎么解决呢?

本帖最后由 jessica222222 于 2021-5-18 08:59 编辑

test.c:1:8: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
nclude <stdio.h>
      ^
In file included from /usr/include/stdlib.h:314:0,
               from test.c:5:
/usr/include/sys/types.h:33:1: 错误:未知的类型名‘__u_char’
typedef __u_char u_char;
^
test.c: 在函数‘countLines’中:
test.c:18:10: 错误:未知的类型名‘FILE’
          FILE *fp;
          ^
test.c:22:21: 警告:赋值时将整数赋给指针,未作类型转换 [默认启用]
             if ((fp = fopen(filename, "r")) == NULL)
                     ^
test.c:24:25: 警告:隐式声明与内建函数‘fprintf’不兼容 [默认启用]
                         fprintf(stderr, "Can not open the file: %s\n", filename);
                         ^
test.c:24:33: 错误:‘stderr’未声明(在此函数内第一次使用)
                         fprintf(stderr, "Can not open the file: %s\n", filename);
                                 ^
test.c:24:33: 附注:每个未声明的标识符在其出现的函数内只报告一次
test.c:28:43: 错误:‘EOF’未声明(在此函数内第一次使用)
            while ((temp = fgetc(fp)) != EOF)
                                           ^
test.c: 在函数‘findAllDirs’中:
test.c:65:25: 警告:隐式声明与内建函数‘fprintf’不兼容 [默认启用]
                         fprintf(stderr, "The path %s is wrong!\n", path);
                         ^
test.c:65:33: 错误:‘stderr’未声明(在此函数内第一次使用)
                         fprintf(stderr, "The path %s is wrong!\n", path);
                                 ^
test.c: 在函数‘main’中:
test.c:98:11: 警告:隐式声明与内建函数‘printf’不兼容 [默认启用]
         printf("计算中...\n");

不爱喝水的鱼 发表于 2021-5-18 09:11:21

dad

怀瑾啊怀瑾 发表于 2021-5-18 09:32:37

感谢小甲鱼老师的指导

ChrisLau666 发表于 2021-5-18 10:07:24

///

老哥我枪呢 发表于 2021-5-18 11:52:32

答案

aidijia 发表于 2021-5-18 14:49:39

看啊看

WIzArd317 发表于 2021-5-18 15:14:38

1

Zmcos 发表于 2021-5-18 15:42:31

1

www0921 发表于 2021-5-18 16:07:51

{:5_102:}山山山山山山山mmm
页: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 [1190] 1191 1192 1193 1194 1195 1196 1197 1198 1199
查看完整版本: S1E2:第一个程序 | 课后测试题及答案