这里向大家分享几种文件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; }