鱼C论坛

 找回密码
 立即注册
查看: 3027|回复: 10

这是第一课的作业,我也没打错啊为什么运行不了

[复制链接]
发表于 2021-10-26 21:26:48 | 显示全部楼层 |阅读模式

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

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

x
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
#include <sys/stat.h>

#define MAX 256

long total;

int countlines(const char *filename);
int isCode(const char *filename);
void findA11Dirs(const char *path);

int countLines(const char *filename)
{
        FILE *fp;
        int count = 0;
        int temp;
       
        if ((fp = fopen(filename, "r")) == NULL)
        {
                fprint(stderr,"Can not open the file;%s\n",filename);
                return 0;
        }
       
        while((temp = fgetc(fp)) != EOF)
        {
                if(temp == '\n')
                {
                        count++;
                       
                }
        }
        fclose(fp);
       
        return count;
}

int isCode(const char *filename)
{
        int length;
       
        length = strlen(filename);
       
        if(!stecmp(filename + (length - 2),".c"))
        {
                return 1;
        }
        else
        {
                return 0;
        }
}

void findA11Dirs(const char *path)
{
        DIR *dp;
        struct dirent *entry;
        struct stat statbuf;
       
        if((dp = opendir(path)) == NULL)
        {
                fprintf(stderr,"The path %s is wrong!\n",path);
                return;
        }
       
        chdir(path);
        while ((entry = readdir(dp)) != NULL)
        {
                lstat(entry->d_name,&statbuf);
               
                if(!strcmp(".",entry->d_name) || !strcmp("..",entry->d_name))
                       continue;
                       
                if(S_ISDIR(statbuf.st_mode))
                {
                        findA11Dirs(entry->d_name);
                }
                else
                {
                        if(is(entry->d_name))
                        {
                                total += countLines(entry->d_name);
                        }
                }
        }
       
        chdir("..");
        closedir(dp);
}

int main()
{
        char path[MAX] = ".";
       
        printf("计算中...\n");
       
        findA11Dirs(path);
       
        printf("目前你总共写了 %1d行代码!\n\n", total);
       
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-26 21:32:20 | 显示全部楼层
我也没打错啊为什么运行不了

你没抄错怎么可能运行不了?

一个字符一个字符的检查代码吧,非常非常非常非常非常认真的检查
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 21:33:52 | 显示全部楼层
提示,注意下面这些长得非常像的字符
1 l i | ! /
0 o O
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-26 21:57:45 | 显示全部楼层
人造人 发表于 2021-10-26 21:32
我也没打错啊为什么运行不了

你没抄错怎么可能运行不了?

我点击编辑运行,就会出来红色的这个是什么意思

C:\Users\11791\Desktop\collect2.exe        [Error] ld returned 1 exit status
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 22:28:48 | 显示全部楼层
你用Linux 或 MacOS编译的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 23:43:41 | 显示全部楼层
pjq 发表于 2021-10-26 21:57
我点击编辑运行,就会出来红色的这个是什么意思

C:%users\11791\Desktop\collect2.exe        [Error] ld ret ...

先复制你抄的那个代码试一试能不能,如果能,那就肯定是你抄错了,那就一个字符一个字符的检查代码
非常非常认真的检查
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 23:44:26 | 显示全部楼层
findA11Dirs

字母 A 后面的是两个数字 1 是吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 23:45:15 | 显示全部楼层
        printf("目前你总共写了 %1d行代码!\n\n", total);
%1d 是数字 1 和字母 d 是吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 23:49:27 | 显示全部楼层
只目测出这两个问题
认真一点,学编程真的需要非常非常的认真
对于编程来说就是错一个字符都不行,所以要非常非常的认真
我承认,一个好的写代码环境是很重要的,但是对于初学者来说没有这样的环境,那就只能是用非常非常认真来弥补这一缺陷

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-27 13:44:17 | 显示全部楼层
大马强 发表于 2021-10-26 22:28
你用Linux 或 MacOS编译的吗?

我用的是Dev-c++
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-27 14:36:08 | 显示全部楼层
window系统?
那你用Linux 或 MacOS系统的代码...
而且还抄不对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 06:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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