1.用fgets实现:,拷贝一个文件,将位置参数1的内容拷贝给位置参数2
#include<stdio.h>
int 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
#include<stdio.h>
int 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计算一个文件的大小,并封装成函数
#include<stdio.h>
int 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("%d\n",file_num(argv[1]));
return 0;
}
4.用fgetc计算一个文件有几行,封装成函数(linux操作系统以\n结尾,就算是最后一行也有一个'\n')
#include<stdio.h>
int 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("%d\n",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!='\0')
{
if(*q=='\n')
{
num++;
break;
}
q++;
}
}
fclose(fp);
return num;
}