dxl1120 发表于 2017-8-5 16:51:40

S1E2课后答案疑问

按照S1E2里的那个   统计当前目录和所以子目录。。。。抄写了代码但是我们输出就是不对呢不是小甲鱼那样的界面

我的是WIN7系统

编译效果


运行效果


很奇怪

是哪里错了呢?

用的是Code::Blocks 软件

小甲鱼 发表于 2017-8-5 17:05:52

不要直接拷贝代码哦~

自己敲一遍代码试试?

霁清d 发表于 2017-8-5 17:35:35

表示我代码可以运行但最终结果是0行代码   以及不知道怎么截图放在回复中

dxl1120 发表于 2017-8-7 08:18:53

小甲鱼 发表于 2017-8-5 17:05
不要直接拷贝代码哦~

自己敲一遍代码试试?

报告代码确实是增加敲的之前        struct _finddata_t fa;这句struct后没加空格   出现编译不过去   后来检查出来了    但是编译通过后运行就出现上面的界面了   不知道是不是跟编译软件或者编译器有关系    Code::Blocks 16.01下载来是不带编译器的   后来下了个GCC编译器   

小甲鱼 发表于 2017-8-7 15:56:11

dxl1120 发表于 2017-8-7 08:18
报告代码确实是增加敲的之前        struct _finddata_t fa;这句struct后没加空格   出现编译不过去   后来 ...

如果是自己敲的话编译过后出现乱码,那应该是编辑的设置问题哦,重新安装下试试。

Dev-C++ 和 Code::blocks 虽然可以完成 90% 以上的课程内容,但学习效果其实不如使用原生态的 GCC 好。

小甲鱼 发表于 2017-8-7 15:57:22

霁清d 发表于 2017-8-5 17:35
表示我代码可以运行但最终结果是0行代码   以及不知道怎么截图放在回复中

点击“高级模式”,随后点击图片即可。

霁清d 发表于 2017-8-7 23:06:40


#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX                   256

long total;

int countLines(const char *filename);
void findAllCodes(const char *path);
void findALLFiles(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;
}

void findAllCodes(const char *path)
{
                struct _finddata_t fa;
                long handle;
                char thePath, target;
               
                strcpy(thePath, path);
                if((handle = _findfirst(strcat(thePath,"/*.c"), &fa)) != -1L)
                {
                                do
                                {
                                                sprintf(target, "%s/%s", path, fa.name);
                                                total += countLines(target);
                                }while (_findnext(handle, &fa) == 0);
                }
               
                _findclose(handle);
}

void findALLDirs(const char *path)
{
                struct _finddata_t fa;
                long handle;
                char thePath;
               
                strcpy(thePath, path);
                if((handle = _findfirst(strcat(thePath, "/*"), &fa)) == -1L)
                {
                                fprintf(stderr, "The path %s is wrong!\n",path);
                                return;
                }
               
                do
                {
                                if (!strcmp(fa.name, ".") || !strcmp(fa.name,".."))
                                                continue;
                                               
                                if( fa.attrib == _A_SUBDIR)
                                {
                                                sprintf(thePath, "%s/%s", path, fa.name);
                                                findAllCodes(thePath);
                                                findALLDirs(thePath);
                                }
                }while (_findnext(handle, &fa) == 0);
               
                _findclose(handle);
}

int main()
{
                char path = ".";
               
                printf("计算中...\n");
               
                findAllCodes(path);
                findALLDirs(path);
               
                printf("目前你总共写了 %ld 行代码!\n\n", total);
                system("pause");
               
                return 0;
}

对着小甲鱼给的代码两边没发现错误(有可能眼瞎了..)
然后代码可以运行却是零


dxl1120 发表于 2017-8-8 09:55:49

霁清d 发表于 2017-8-7 23:06
对着小甲鱼给的代码两边没发现错误(有可能眼瞎了..)
然后代码可以运行却是零

复制你的代码运行完美运行啊

也没有我自己那个的问题了

真是奇了怪了啊

霁清d 发表于 2017-8-8 12:02:22

{:10_266:}{:10_266:} 我刚刚自己又去复制了下 出现了140行代码和38行都不对.........
可能是我电脑问题??{:10_266:}

fanzongsao 发表于 2017-8-8 17:27:30

小甲鱼 发表于 2017-8-7 15:56
如果是自己敲的话编译过后出现乱码,那应该是编辑的设置问题哦,重新安装下试试。

Dev-C++ 和 Code: ...

小甲鱼老师,我照你的教程安装linux,修改完网络配置后可以ping 8.8.8.8,但是ping其他网站都是卡在那里一会,然后显示unknown host。 yum gcc也装不了。之前装的时候也是同样的问题。崩溃!!{:10_262:}

小甲鱼 发表于 2017-8-8 17:37:40

fanzongsao 发表于 2017-8-8 17:27
小甲鱼老师,我照你的教程安装linux,修改完网络配置后可以ping 8.8.8.8,但是ping其他网站都是卡在那里 ...

建议按照这个百度经验修改下设置 -> http://jingyan.baidu.com/article/4d58d54137d2a19dd5e9c050.html

小甲鱼 发表于 2017-8-8 17:38:43

霁清d 发表于 2017-8-8 12:02
我刚刚自己又去复制了下 出现了140行代码和38行都不对.........
可能是我电脑问题?? ...

它只是检查当前文件夹以及其子文件夹下的代码行数哦,所以如果生成的可执行程序在其他文件夹,是检测不到的~

fanzongsao 发表于 2017-8-8 18:15:30

小甲鱼 发表于 2017-8-8 17:37
建议按照这个百度经验修改下设置 -> http://jingyan.baidu.com/article/4d58d54137d2a19dd5e9c050.html

不知道怎么查看自己的网关地址,百度了几个方法都搞不定{:10_282:}

霁清d 发表于 2017-8-9 16:03:58

小甲鱼 发表于 2017-8-8 17:38
它只是检查当前文件夹以及其子文件夹下的代码行数哦,所以如果生成的可执行程序在其他文件夹,是检测不到 ...

好的 谢谢小甲鱼

屁哥 发表于 2017-8-9 16:22:40

霁清d 发表于 2017-8-7 23:06
对着小甲鱼给的代码两边没发现错误(有可能眼瞎了..)
然后代码可以运行却是零

哥们 你这个 保存的时候 不是C文件
保存默认是C++ 文件要改后缀

上网冲浪做笔记 发表于 2017-9-2 16:13:38

屁哥 发表于 2017-8-9 16:22
哥们 你这个 保存的时候 不是C文件
保存默认是C++ 文件要改后缀

正解!

屁哥 发表于 2017-9-3 19:18:44

上网冲浪做笔记 发表于 2017-9-2 16:13
正解!

哈哈
页: [1]
查看完整版本: S1E2课后答案疑问