请详细解释该函数

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:49:32
尤其解释下那个
if(p)
*p=0;
的作用rdata()
{
FILE*fp;
int i=0;
unsigned char *p;
fp =fopen("in.dat","r");
while(fgets(str[i] ,80,fp)!=NULL)
{
p=strchr(str[i],'\n');
if(p)
*p=0;
i++;
}
maxline=i;
return maxline;
}

这个函数是用来统计in.dat有多少行数据.

rdata()
{
FILE*fp;
int i=0; //用来统计行数
unsigned char *p;
fp =fopen("in.dat","r"); //打开文件
while(fgets(str[i] ,80,fp)!=NULL) //逐行读取文件,将每行数据依次存入str[i]
{
p=strchr(str[i],'\n');//在str[i]中查找是否有回车符,有的话,则让p指向回车符,否则返回NULL
if(p) //如果有回车符
*p=0; //将回车符改成字符串结束符
i++; //行数加1
}
maxline=i;
return maxline; //返回总行数
}

在str中找换行符

找到就返回所在位置的指针 找不到就返回NULL

如果找到 将换行符替换成\0 也就是字符串结束符