这是第一课的作业,我也没打错啊为什么运行不了
#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;
} 我也没打错啊为什么运行不了
你没抄错怎么可能运行不了?
一个字符一个字符的检查代码吧,非常非常非常非常非常认真的检查
提示,注意下面这些长得非常像的字符
1 l i | ! /
0 o O
人造人 发表于 2021-10-26 21:32
我也没打错啊为什么运行不了
你没抄错怎么可能运行不了?
我点击编辑运行,就会出来红色的这个是什么意思
C:\Users\11791\Desktop\collect2.exe ld returned 1 exit status
你用Linux 或 MacOS编译的吗? pjq 发表于 2021-10-26 21:57
我点击编辑运行,就会出来红色的这个是什么意思
C:%users\11791\Desktop\collect2.exe ld ret ...
先复制你抄的那个代码试一试能不能,如果能,那就肯定是你抄错了,那就一个字符一个字符的检查代码
非常非常认真的检查
findA11Dirs
字母 A 后面的是两个数字 1 是吗?
printf("目前你总共写了 %1d行代码!\n\n", total);
%1d 是数字 1 和字母 d 是吗?
只目测出这两个问题
认真一点,学编程真的需要非常非常的认真
对于编程来说就是错一个字符都不行,所以要非常非常的认真
我承认,一个好的写代码环境是很重要的,但是对于初学者来说没有这样的环境,那就只能是用非常非常认真来弥补这一缺陷
大马强 发表于 2021-10-26 22:28
你用Linux 或 MacOS编译的吗?
我用的是Dev-c++ window系统?
那你用Linux 或 MacOS系统的代码...
而且还抄不对
页:
[1]