完整代码如下,有任何疑问可以追问。
#include <stdio.h>#include <stdlib.h>
int merge(char *in1,char *in2,char *out)
{
FILE *f_in,*f_out
int n
char buf[4096]
//打开输出文件
f_out=fopen(out,"wb")
if(!f_out) return 0
//打开并读第一个文件写到输出文件
f_in=fopen(in1,"rb")
if(!f_in) return 0
while(n=fread(buf,1,sizeof(buf),f_in))
{
fwrite(buf,1,n,f_out)
}
fclose(f_in)
//打开并读第二个文件写到输出文件
f_in=fopen(in2,"rb")
if(!f_in) return 0
while(n=fread(buf,1,sizeof(buf),f_in))
{
fwrite(buf,1,n,f_out)
}
fclose(f_in)
fclose(f_out)
return 1
}
int main()
{
if (!merge (“1.txt”, “2.txt”, “3.txt”))
printf(“Failed”)
else
printf(“successfully”)
return 0
}
设A.txt和B.txt都在当前目录下,读打开A.txt和B.txt,写打开C.txt。按字符循环读取A.txt文件一行并逐字符写入C.txt文件,但当读到'\n'时不写入\n'而启动另一内循环按字符读取B.txt文件的一行并逐字符写入C.txt文件,当写入'\n'后跳出内循环停止读取B.txt文件转而再去读A.txt文件的下一行……如此反复,直到遇到A.txt文件的EOF时结束。代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"
#include "stdlib.h"
int main(void){
FILE *fpa,*fpb,*fpc
char ch
fpa=fopen("A.txt","r")
fpb=fopen("B.txt","r")
fpc=fopen("C.txt","w")
if(!fpa || !fpb || !fpc){
printf("Open the file(s) failure...\n")
exit(0)
}
while((ch=fgetc(fpa))!=EOF){
if(ch=='\n')
while(fputc(ch=fgetc(fpb),fpc),ch!='\n' && ch!=EOF)
else fputc(ch,fpc)
}
fclose(fpc)
fclose(fpb)
fclose(fpa)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)