這裏向大家分享幾種文件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;
}