S1E2第一个程序 为什么显示我写了0行代码
一开始是有忘敲分号,敲错字母的问题,全部改掉以后就能正常运行了,但是显示的是0行代码(正确的应该是101行)。是Windows系统。 我猜是电脑的问题,把电脑砸了换新的就可以了。 永恒的蓝色梦想 发表于 2020-5-22 16:14
我猜是电脑的问题,把电脑砸了换新的就可以了。
QAQ 却把青梅嗅 发表于 2020-5-22 16:15
QAQ
连个代码都没有就问? 永恒的蓝色梦想 发表于 2020-5-22 16:17
连个代码都没有就问?
emmmmm好的,但我是今天第一天学
#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("目前你总共写了%1d行代码!\n\n", total);
system("pause");
return 0;
} Twilight6 发表于 2020-5-22 16:25
哈哈哈哈我同意代码都不发让人在怎么猜你错在哪
错误的错法和错误又不是一一对应的,一个错误有 ...
好的,谢谢呀。代码已经回复了。 #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("目前你总共写了%1d行代码!\n\n", total);
system("pause");
return 0;
} 却把青梅嗅 发表于 2020-5-22 17:08
我猜可能是第47行的问题,你的程序文件后缀是.c还是.cpp??仔细检查一下
你这个代码查找的是.c文件 sunrise085 发表于 2020-5-22 17:14
我猜可能是第47行的问题,你的程序文件后缀是.c还是.cpp??仔细检查一下
你这个代码查找的是.c文件
明白了!!程序后缀是.cpp,不是.c,谢谢你! 却把青梅嗅 发表于 2020-5-22 17:36
明白了!!程序后缀是.cpp,不是.c,谢谢你!
那就给个最佳吧~~一天了,一个还没有呢
页:
[1]