最近论坛里的朋友给写了一个程序,我对这个程序有些问题要问下,请大家帮忙!谢谢
最近论坛里的朋友给写了一个程序,我对这个程序有些问题要问下,请大家帮忙!谢谢大家!问题程序如下:
#include <stdio.h>
#define MAX_LINE 80
int main(void)
{
int i,state,count=0;
char buf[MAX_LINE]; //*这里定义了一个数组*//
while(fgets(buf,MAX_LINE,stdin) != NULL) //*这里的fgets是干什么啊?一开始以为是个函数,可是后面都没提到过!*//
{
for(i=0;buf[i] != '\0';++i)
{
if(buf[i] != ' ' && buf[i] != '\n' && buf[i] != '\t') //*查看一行有没有空字符*//
state = 1; //*有的话,state为1*//
}
if(buf[i-1] == '\n' && state) //*这里判断,有空字符的是不是为换行,并且,state为真否*//
{
++count; //*是换行,并且为真的话,就加一行!*//
state = 0;
}
}
if(feof(stdin)) //*问题出来了,这里feof是干什么的!stdin?*//
{
fprintf(stdout,"no-space lines :\t%d",count); //*这里fprintf?我还没学过……*//
return 0;
}
if(ferror(stdin)) //*这里的ferror是干什么的?*//
{
fprintf(stderr,"read file error!\n");
return 1;
}
}
文件保存为lc.c,通过重定向符号<输入要统计的文件,编译生成lc后,可以统计lc.c文件:
lc < lc.c
no-space lines : 30