这里向大家分享几种文件IO复制文件的方法,若有不对,让您见笑了,若对您有点帮助,那就太好了。
1.用fgetc与fputc实现文件复制。
#include<stdio.h>
int main(int argc, char *argv[])
{
FILE *fp1;
FILE *fp2;
int ch;
if (argc < 3)
{
printf("Usage:%s <one_file> <others_file>",argv[0]);
return -1;
}
if ((fp1 = fopen(argv[1],"r")) == NULL)
{
perror("fopen\n");
return -1;
}
if ((fp2 = fopen(argv[2],"w+")) == NULL)
{
perror("fopen1\n");
return -1;
}
while ((ch = fgetc(fp1)) != EOF)
{
fputc(ch,fp2);
}
return 0;
}
2.用fgets与fputs实现文件复制。
#include<stdio.h>
#define N 64
int main(int argc, char *argv[])
{
FILE *fp1;
FILE *fp2;
char buf[N];
if (argc < 3)
{
printf("Usage:%s <one_file> <others_file>",argv[0]);
return -1;
}
if ((fp1 = fopen(argv[1],"r")) == NULL)
{
perror("fopen\n");
return -1;
}
if ((fp2 = fopen(argv[2],"w+")) == NULL)
{
perror("fopen1\n");
return -1;
}
while (fgets(buf,N,fp1) != NULL)
{
fputs(buf,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
3.用fread与fwrite实现文件复制。
#include<stdio.h>
#define N 64
int main(int argc, char *argv[])
{
FILE *fp1;
FILE *fp2;
char buf[N];
int n;
if (argc < 3)
{
printf("Usage:%s <one_file> <others_file>",argv[0]);
return -1;
}
if ((fp1 = fopen(argv[1],"r")) == NULL)
{
perror("fopen\n");
return -1;
}
if ((fp2 = fopen(argv[2],"w+")) == NULL)
{
perror("fopen1\n");
return -1;
}
while ((n = fread(buf,sizeof(char),N,fp1)) > 0)
{
fwrite(buf,sizeof(char),n,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}