麻烦大家帮我解释下这段C代码

来源:百度知道 编辑:UC知道 时间:2024/06/10 10:26:22
麻烦大家给我解释下这段代码,最后又注释,谢谢
#include <stdio.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
/* Data define block */
FILE *fp;
char *grep_word(char *line_buffer,const char *word);
char a[1024]={0};
char temp[32]={0};
char *show;
char c=0;
int i=0;
/* Data define block */

strcpy(temp,argv[1]);
fp=fopen("./file.dat","r");
if(fp==NULL) {
printf("File open error!\n");
exit(1);
}
rewind(fp);
while(c!=EOF) {
c=fgetc(fp);
while( (c!='\n')&&(c!=EOF)) {
a[i]=c;
i++;
c=fgetc(fp);
}
show=grep_word(a,temp);
if(strlen(show)>0) {
printf("%s\n",show);
}
memset(a,0,sizeof(a))

这个程序的作用应该是在文件中查找某一个字符串(单词)并输出
先说一下memset函数的作用,是用来清空内存区的。如果不用会出现某些错误
#include <stdio.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
/* Data define block */
FILE *fp;
char *grep_word(char *line_buffer,const char *word);
char a[1024]={0};
char temp[32]={0};
char *show;
char c=0;
int i=0;
/* Data define block */

strcpy(temp,argv[1]);
fp=fopen("./file.dat","r");//用只读方式打开文件dile.dat
if(fp==NULL) {//如果不存在返回error
printf("File open error!\n");
return 0;
}
rewind(fp);//将fp指针指向文件的开头
while(c!=EOF) {//当C不等于-1时
c=fgetc(fp);//从文件中读取一个字符,存储到c中
while( (c!='\n')&&(c!=EOF)) {
a[i]=c;//将从文件中读取的字符存储到数组a[i]中
i++;
c=fgetc(fp);//继续读取
}
show=