1.用fgets实现:,拷贝一个文件,将位置参数1的内容拷贝给位置参数2
#includeint file_copy(char*file1,char*file2) { FILE*fp = fopen(file1,"r"); if(NULL==fp) { perror("file1"); return -1; } FILE*fq = fopen(file2,"w"); if(NULL==fq) { perror("file2"); return -1; } char a; while((a=fgetc(fp))!=-1) { fputc(a,fq); } fclose(fp); fclose(fq); return 0; } int main(int argc, char *argv[]) { if(argc>3) { printf("输入错误"); return -1; } file_copy(argv[1],argv[2]); return 0; }
2:用 fputs实现,拷贝一个文件,将位置参数1的内容拷贝给位置参数2
#includeint file_copy2(char*file1,char*file2) { FILE*fp = fopen(file1,"r"); if(NULL==fp) { perror("file1"); return -1; } FILE*fq = fopen(file2,"w"); if(NULL==fq) { perror("file2"); return -1; } char a[20]; while((fgets(a,20,fp))!=NULL) { fputs(a,fq); } fclose(fp); fclose(fq); return 0; } int main(int argc, char *argv[]) { if(argc>3) { printf("输入错误"); return -1; } file_copy2(argv[1],argv[2]); return 0; }
3.用fgetc计算一个文件的大小,并封装成函数
#includeint file_num(char*file1) { FILE*fp = fopen(file1,"r"); if(NULL==fp) { perror("file1"); return -1; } char a;int num=0; while((a=fgetc(fp))!=-1) { num++; } fclose(fp); return num; } int main(int argc, char *argv[]) { if(argc>3) { printf("输入错误"); return -1; } // file_copy2(argv[1],argv[2]); printf("%dn",file_num(argv[1])); return 0; }
4.用fgetc计算一个文件有几行,封装成函数(linux操作系统以n结尾,就算是最后一行也有一个'n')
#includeint file_num(char*file1) { FILE*fp = fopen(file1,"r"); if(NULL==fp) { perror("file1"); return -1; } char a;int num=0; while((a=fgetc(fp))!=-1) { if(a=='n') num++; } fclose(fp); return num; } int main(int argc, char *argv[]) { if(argc>3) { printf("输入错误"); return -1; } // file_copy2(argv[1],argv[2]); printf("%dn",file_num(argv[1])); return 0; }
5.用fgets计算一个文件的大小,要求封装成函数
int file_num2(char*file1)
{
FILE*fp = fopen(file1,"r");
if(NULL==fp)
{
perror("file1");
return -1;
}
char a[20];
int num=0;char*q;
while(fgets(a,20,fp)!=NULL)
{
q=a;
while(*q!=0)
{
num++;
q++;
}
}
fclose(fp);
return num;
}
6:用fgets计算一个文件有几行,要求封装成函数(linux操作系统以n结尾,就算是最后一行也有一个'n')
int file_num3(char*file1)
{
FILE*fp = fopen(file1,"r");
if(NULL==fp)
{
perror("file1");
return -1;
}
char a[20];
int num=0;char*q,i=0;
while(fgets(a,sizeof(a),fp)!=NULL)
{
q=a;
while(*q!=' ')
{
if(*q=='n')
{
num++;
break;
}
q++;
}
}
fclose(fp);
return num;
}



