1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| void connect(void) { /*################### 打开文件1和2,并建立合并文件"Output_file.txt" ###################*/
FILE *fpa, *fpb, *fpc; char *file_name_1, *file_name_2; //文件名暂存数组
printf("请输入文件1的相对地址:"); //scanf("%s", file_name_1); file_name_1 = get_name(); printf("Openning %s\n", file_name_1); //状态标识
if ((fpa = fopen(file_name_1, "r")) == NULL) // 打开输出文件并使fpa指向此文件 { printf("Open failure...\n"); // 如果打开时出错,就输出"打不开"的信息 exit(0); // 终止程序 }
printf("\n请输入文件2的相对地址:"); //scanf("%s", file_name_2); file_name_2 = get_name(); printf("Openning %s\n", file_name_2); //状态标识
if ((fpb = fopen(file_name_2, "r")) == NULL) // 打开输出文件并使fpb指向此文件 { printf("Open failure...\n"); // 如果打开时出错,就输出"打不开"的信息 exit(0); // 终止程序 }
if ((fpc = fopen("Output_file.txt", "w")) == NULL) // 打开输出文件并使fpc指向此文件 { printf("Open failure...\n"); // 如果打开时出错,就输出"打不开"的信息 exit(0); // 终止程序 } printf("Building Output_file.txt\n"); //状态标识
/*################### 将文件1和2的内容复制到文件Output_file中 ###################*/ int last_a, last_b; //定义文件大小 char *buff;
fseek(fpa, 0, SEEK_END); //查找第一个文件的大小 last_a = ftell(fpa); buff = (char*)malloc(sizeof(char)*last_a); if (NULL == buff) { exit(1); } rewind(fpa); //将第一个文件指针移到开头(不可忘记)
fread(buff, 1,last_a, fpa); //将第一个文件写入 fwrite(buff, 1,last_a, fpc);
free(buff);
fseek(fpc, 0, SEEK_END); //将合并文件的指针移到最后 fseek(fpb, 0, SEEK_END); //查找第二个文件的大小 last_b = ftell(fpb); buff = (char*)malloc(sizeof(char)*last_b); if (NULL == buff) { exit(1); }
rewind(fpb); //将第二个文件指针移到开头 fread(buff, 1, last_b, fpb); //将第二个文件写入 fwrite(buff, 1, last_b, fpc); free(buff);
/*################### 关闭文件Output_file和文件1、2 ###################*/
fclose(fpc); fclose(fpb); fclose(fpa); }
|