1.用fread和fwrite实现文件拷贝:
#include<stdio.h>
#include<head.h>
int main(int argc, const char *argv[])
{
FILE *fp=fopen("1.c","r");
if(NULL==fp)
{
ERR_MSG("fopen");
return -1;
}
FILE *fq=fopen("copy1.txt","w");
if(NULL==fq)
{
ERR_MSG("fopen");
return -1;
}
char str[2]="";
while(fread(str,sizeof(str)-1,1,fp)!=0)
{
printf("%s",str);
fwrite(str,sizeof(str)-1,1,fq);
}
fclose(fp);
fclose(fq);
return 0;
}
2.用fgets实现拷贝并计算一个文件有几行和几个字符:
#include<stdio.h>
#include<head.h>
int main(int argc, const char *argv[])
{
FILE *fp=fopen("1.c","r");
if(NULL==fp)
{
ERR_MSG("fopen");
return -1;
}
FILE *fq=fopen("copy.c","w");
if(NULL==fp)
{
ERR_MSG("fopen");
return -1;
}
char a[20]="";
int sum=0;
int line=0;
char *p=a;
while(NULL!=fgets(a,sizeof(a),fp))
{
fputs(a,fq);
printf("%s",a);
sum+=strlen(a);
for(int i=0;i<strlen(a);i++)
{
if(a[i]=='\n')
line++;
}
}
printf("行数有%d行\n",line);
printf("大小为%d个字节\n",sum);
fclose(fp);
return 0;
}