用C语言解决文件合并问题
生活随笔
收集整理的這篇文章主要介紹了
用C语言解决文件合并问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目一:文件合并問題
(1)問題描述
有兩個磁盤文件A和B,各存放一串字母,要求把這兩個文件中的信息合并,輸出到一個新文件C中。
(2)算法分析
在.cpp所在的文件夾里建立A.doc和B.doc,并向其中輸入字母,再編寫一個用于輸出文件內容的程序,將文件信息合并。
(3)源代碼
磁盤文件A:
磁盤文件B:
#include <stdio.h> void main( ) { FILE *fp; /* 定義一個文件指針變量fp */ int c; /* c為存放字符的變量 */ char filename[40]; /* filename用于存放數據文件名 */ printf("filename: ");/* 提示輸入磁盤文件名 */gets(filename); if ((fp=fopen(filename,"w"))==NULL){ printf("Can't open the %s\n", filename); return;}while ((c=getchar( ))!=EOF) /*鍵盤文件結束標志:輸入Ctrl+z,顯示^Z后回車*/putc(c, fp); /* 將鍵盤輸入的字符寫到文件中*/fclose(fp); /* 建立文件結束,關閉文件 */ printf("outfile:\n");fp=fopen(filename,"r"); /* 以讀方式打開文本文件 */while ((c=getc(fp))!=EOF) /* 未讀到文件結束標志時 */putchar(c); /* 在顯示器顯示讀出的字符 */fclose(fp); /* 讀文件結束,關閉文件 */}合并A、B文件:
#include"stdio.h" #include"stdlib.h" void main() { FILE *fp; int i,j, n,i1; char c[100],t,ch; if((fp=fopen("a1","r"))==NULL) { printf("Can not open the file\n"); exit(0); } printf("\n file A:\n"); for(i=0;(ch=fgetc(fp))!=EOF;i++) {c[i]=ch; putchar(c[i]); } fclose(fp); i1=i; if((fp=fopen("b1","r"))=NULL) {printf("\n Can not open the file"); exit(0); } printf("\n file B:\n"); for(i=i1;(ch=fgetc(fp))!=EOF;i++) {c[i]=ch; putchar(c[i]); } fclose(fp); n=i; for(i=0;i<n;i++) for(j=i+1;j<n;j++) if(c[i]>c[j]) {t=c[i]; c[i]=c[j]; c[j]=t; } printf("\n file C:\n"); fp=fopen("c1","w"); for(i=1;i<n;i++) {putc(c[i],fp); putchar(c[i]); } fclose(fp); }運行結果:
總結
以上是生活随笔為你收集整理的用C语言解决文件合并问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ipxzerg时代的zvt两族战略之虫族
- 下一篇: js中trim的使用