急求~一道C语言的编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:28:31
unsigned char xx[50][80] ;
int maxline = 0 ;/* 文章的总行数 */
int ReadDat(void)
{
FILE *fp;
int i = 0 ;
unsigned char *p ;
if((fp = fopen("ENG.IN", "r")) ==NULL) return 1 ;
while(fgets(xx[i], 80, fp) !=NULL)
{
p = strchr(xx[i], '\n') ;
if(p)
*p = 0;
i++ ;
}
maxline = i ;
fclose(fp) ;
return 0 ;
}
其余的我省了。请问程序中的数组是2维数组,但是再while(fgets(xx[i], 80, fp) !=NULL)可以用一维来表示?
还有:while(fgets(xx[i], 80, fp) !=NULL)
{
p = strchr(xx[i], '\n') ;
if(p)
*p = 0;
i++ ;
}
maxline = i ;
这一段是什么意思strchr是什么意思*p=0又是什么意思?

XX[i]是取数组的每行,while括号里把文件里每行的字符串存入数组的一行。

while循环执行的目的是得出文件里一共有几行。至于p,由于最后的处理没给出来,不明白它的作用。

strchr是查找字符串2在字符串1中第一次出现的位置 返回指针