【发布时间】:2010-10-05 04:14:44
【问题描述】:
我正在尝试创建一个程序,该程序在给定输入文件的情况下返回输入文件中所有代码行的计数,不包括空白行和注释行。我已经编写了以下代码,但是我需要有关如何排除包含 cmets 和空白行的行的帮助。
#include<stdio.h>
int main()
{
int count;
char ch;
FILE *fptr;
clrscr();
fp=fopen("test.cpp","r");
if(fp==EOF)
{
perror("Error:");
}
else
{
while(ch!=EOF)
{
ch=fgetc(fptr);
if(ch=='\n')
count++;
if(ch=='\\')
count--;
if(ch=='\*')
{
while(ch!='*\')
{
ch=fgetc(fptr);
}
}
}
printf("the lines in the code are %d\n",count);
fclose (fptr)
}
getchar();
return 0;
}
如何修改上述代码,使空行和注释行不计入?
【问题讨论】:
-
究竟是如何“不工作”的?
-
如何修改上面的代码,使空行和注释行不计入?
-
未初始化
ch。您的程序甚至可能永远不会进入 while 循环。 -
我猜 ch 可以包含任何垃圾而不是 EOF 或者 EOF 也可以被分配为垃圾?
-
问题 still 代表 “这是我要修复的一大块代码。为我做。” still 不是一个真正的问题。当 OP 准备好说明他没有得到什么时,我们将到达某个地方......直到那时这个应该被关闭。
标签: c whitespace line-count