pjq 发表于 2021-10-26 21:26:48

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

#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 = ".";
       
        printf("计算中...\n");
       
        findA11Dirs(path);
       
        printf("目前你总共写了 %1d行代码!\n\n", total);
       
        return 0;
}

人造人 发表于 2021-10-26 21:32:20

我也没打错啊为什么运行不了

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

一个字符一个字符的检查代码吧,非常非常非常非常非常认真的检查

人造人 发表于 2021-10-26 21:33:52

提示,注意下面这些长得非常像的字符
1 l i | ! /
0 o O

pjq 发表于 2021-10-26 21:57:45

人造人 发表于 2021-10-26 21:32
我也没打错啊为什么运行不了

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


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

C:\Users\11791\Desktop\collect2.exe        ld returned 1 exit status

大马强 发表于 2021-10-26 22:28:48

你用Linux 或 MacOS编译的吗?

人造人 发表于 2021-10-26 23:43:41

pjq 发表于 2021-10-26 21:57
我点击编辑运行,就会出来红色的这个是什么意思

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

先复制你抄的那个代码试一试能不能,如果能,那就肯定是你抄错了,那就一个字符一个字符的检查代码
非常非常认真的检查

人造人 发表于 2021-10-26 23:44:26

findA11Dirs

字母 A 后面的是两个数字 1 是吗?

人造人 发表于 2021-10-26 23:45:15

      printf("目前你总共写了 %1d行代码!\n\n", total);
%1d 是数字 1 和字母 d 是吗?

人造人 发表于 2021-10-26 23:49:27

只目测出这两个问题
认真一点,学编程真的需要非常非常的认真
对于编程来说就是错一个字符都不行,所以要非常非常的认真
我承认,一个好的写代码环境是很重要的,但是对于初学者来说没有这样的环境,那就只能是用非常非常认真来弥补这一缺陷

pjq 发表于 2021-10-27 13:44:17

大马强 发表于 2021-10-26 22:28
你用Linux 或 MacOS编译的吗?

我用的是Dev-c++

大马强 发表于 2021-10-27 14:36:08

window系统?
那你用Linux 或 MacOS系统的代码...
而且还抄不对
页: [1]
查看完整版本: 这是第一课的作业,我也没打错啊为什么运行不了