
#include \x0d\x0aconst int MAX_SIZE_PER_LINE = 1024\x0d\x0a\x0d\x0aint main(int argc, char *argv[])\x0d\x0a{\x0d\x0a FILE * file_a,*file_b,*file_c\x0d\x0a char buffer[MAX_SIZE_PER_LINE*2]\x0d\x0a file_a = fopen("a.txt","r")\x0d\x0a file_b = fopen("b.txt","r")\x0d\x0a file_c = fopen("c.txt","w")\x0d\x0a while(NULL != fgets(buffer ,MAX_SIZE_PER_LINE,file_a))\x0d\x0a {\x0d\x0a //不是最后一行肯定会有
换行符,消除这个换行符 \x0d\x0a if('\n' == buffer[strlen(buffer)-1]) \x0d\x0a fgets(buffer+strlen(buffer)-1 ,MAX_SIZE_PER_LINE,file_b)\x0d\x0a //对于最后一行可能没有换行符的情况特殊处理 \x0d\x0a else\x0d\x0a fgets(buffer+strlen(buffer) ,MAX_SIZE_PER_LINE,file_b) \x0d\x0a fputs(buffer,file_c)\x0d\x0a }\x0d\x0a fclose(file_a)\x0d\x0a fclose(file_b)\x0d\x0a fclose(file_c) \x0d\x0a return 0\x0d\x0a}\x0d\x0a\x0d\x0a/*\x0d\x0aA.txt : \x0d\x0a-------\x0d\x0aaa*\x0d\x0abb*\x0d\x0acc*\x0d\x0add*\x0d\x0aee*\x0d\x0aff*\x0d\x0agg*\x0d\x0a\x0d\x0aB.txt : \x0d\x0a-------\x0d\x0a11\x0d\x0a22\x0d\x0a33\x0d\x0a44\x0d\x0a55\x0d\x0a66\x0d\x0a77\x0d\x0a\x0d\x0aC.txt :\x0d\x0a-------\x0d\x0aaa*11\x0d\x0abb*22\x0d\x0acc*33\x0d\x0add*44\x0d\x0aee*55\x0d\x0aff*66\x0d\x0agg*77 \x0d\x0a\x0d\x0a说明: A.txt 和 B.txt 要放在可执行程序同一个
目录下。C.txt 会自动在这个目录下生成。 \x0d\x0a*/
设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
}
FILE*fp1,*fp2
fp1=fopen(path1,"at+")//txt1 的路径 path1
fp2=fopen(path2,"at+")//txt2
fseek(fp2,0,SEEK_END)
int len2=ftell(fp2)//txt2文件长度
rewind(fp2)
char *buf2=new char [len2]//缓冲区
fread(buf2,1,len2,fp2)//读txt2数据到buf2
fwrite(buf2,1,len2,fp1)//将txt2加到txt1尾
fclose(fp1)
fclose(fp2)
delete [] buf2
//使用前保存txt1
评论列表(0条)