鱼C论坛

 找回密码
 立即注册
查看: 2048|回复: 4

SLE2课后作业代码疑问

[复制链接]
发表于 2017-9-6 18:54:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
系统:Linux deepin

问题描述:
昨天我用VI敲了一次代码,然后出现了多错误无法编译,后来不小心删掉了。
今天我用ATOM抄了一次代码,结果出现其中一个错误
“assignment makes pointer from integer without a cast ”

顺便附上写出来的代码

错误看上面

错误看上面

homework2.c.zip

841 Bytes, 下载次数: 1

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-9-6 19:44:28 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <dirent.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include <sys/stat.h>

  7. #define MAX 256

  8. long total;

  9. int countLines(const char *filename);
  10. int isCode(const char *filename);
  11. void findAllDirs(const char *path);

  12. int countLines(const char *filename)
  13. {
  14.   FILE *fp;
  15.   int count = 0;
  16.   int temp;

  17.   if ((fp = fopen(filename,"r")) == NULL)
  18.   {
  19.     fprintf(stderr,"Can not open the file; %s\n",filename);
  20.     return 0;
  21.   }

  22.   while ((temp = fgetc(fp)) != EOF)
  23.   {
  24.     if (temp == '\n')
  25.     {
  26.       count++;
  27.     }
  28.   }

  29.   fclose(fp);

  30.   return count;
  31. }

  32. int isCode(const char *filename )
  33. {
  34.   int length;

  35.   length = strlen(filename);

  36.   if (!strcmp(filename + (length - 2),".c"))
  37.   {
  38.     return 1;
  39.   }
  40.   else
  41.   {
  42.     return 0;
  43.   }
  44. }

  45. void findAllDirs(const char *path)
  46. {
  47.   DIR *dp;
  48.   struct dirent *entry;
  49.   struct stat statbuf;

  50.   if (dp = opendir(path ) == NULL)
  51.   {
  52.     fprintf(stderr, "The path %s is wrong\n",path );
  53.     return;
  54.   }

  55.   chdir(path);
  56.   while ((entry = readdir(dp)) != NULL)
  57.   {
  58.     lstat(entry->d_name,&statbuf);

  59.     if (!strcmp(".",entry->d_name) || !strcmp("..",entry->d_name))
  60.       continue;

  61.     if (S_ISDIR(statbuf.st_mode))
  62.     {
  63.       findAllDirs(entry->d_name);
  64.     }
  65.     else
  66.     {
  67.       if (isCode(entry->d_name))
  68.       {
  69.         total += countLines(entry->d_name);
  70.       }
  71.     }
  72.   }

  73.   chdir("..");
  74.   closedir(dp);
  75. }

  76. int main()
  77. {
  78.   char path[MAX] = ".";

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

  80.   findAllDirs(path);

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

  82.   return 0;
  83. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-6 19:51:22 | 显示全部楼层
本帖最后由 木Muk 于 2017-9-6 20:01 编辑

我还是没有搞懂原来代码的问题,上边换行的问题是ATOM的问题,但是复制小甲鱼原来代码运行成功……依旧不知道自己错在哪儿,再来一次,为什么代码是210行?
DeepinScreenshot_20170906194724.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-6 19:54:05 | 显示全部楼层
本帖最后由 木Muk 于 2017-9-6 20:00 编辑

好吧,出错在63行,少了一个括号,可是为什么运行结果是210行?小甲鱼原来代码是106行?
DeepinScreenshot_20170906195825.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-7 12:20:13 | 显示全部楼层
无人理会好恐怖……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 02:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表