回复
查看参考答案
#include<stdio.h>
#include<unistd.h>
#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 findAIIDirs(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;
}
int isCode(const char *filename)
{
int length;
length = strlen(filename);
if (!strcmp(filename + (length - 2), ".c"))
{
return 1;
}
else
{
return 0;
}
}
void findAIIDirs(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))
{
findAIIDirs(entry->d_name);
}
else
{
if (isCode(entry->d_name))
{
total += countLines(entry->d_name);
}
}
}
chdir("..");
closedir(dp);
}
int main()
{
char path = ".";
printf("计算中...\n");
findAIIDirs(path);
printf("目前你总共写了%ld行代码!\n\n", total);
return 0;
}
{:5_103:}
1
感谢
终于完成了呜呜呜,没想到第一次运行就报错,找了半天才发现有两个标点符号写错了。
(本来想把成功运行的截图上传,但图片大小超出10kb只好放弃)
1
keke
123456
做完查看答案
万恶的空格,万恶的大小写字母!
现在是不是都没新人了~
测试题答案
求助
我成功的认识到大小写和空格{:5_90:}的重要性
看看答案
1
0.因为他执行你的命令
1.机器语言
2.编译
3.一个是全写完再执行,一个是边写边执行
4.可以
5.将高级语言转换成机器语言
6.对照着一张表翻译
7.不晓得
查看答案