如何利用C程序有规律的合并两个文本文件!
有A.txt和B.txt两个文档,如何将B文档的每5行内容插入到A文档的每一行的下方!形成一个新文档比如 A文档内容
123456.
花样百出.
B文档内容
a
b
c
d
e
g
h
i
j
合并后文档
123456.
a
b
c
d
e
花样百出.
f
g
h
i
j
#include <stdio.h> #include <stdbool.h> #include <string.h> bool insert_line_to( FILE* src, FILE* dst ) { for( bool bwrote=false; ; ) { char buf[1024+1]; // 行缓冲,确保其不小于2 char* p = fgets( buf, sizeof buf, src ); if( !p ) { if( bwrote ) { fputc( '\n', dst ); return true; } return false; } fputs( buf, dst ); bwrote = true; if( buf[strlen(buf)-1] == '\n' ) return true; } } size_t insert_lines_to( FILE* src, FILE* dst, size_t count ) { for( size_t r=0; r!=count; ++r ) if( !insert_line_to(src,dst) ) return r; return count; } int main( void ) { FILE* fa = fopen( "a.txt", "r" ); FILE* fb = fopen( "b.txt", "r" ); FILE* fc = fopen( "c.txt", "w" ); for( ; ; ) { size_t a = insert_lines_to( fa, fc, 1 ); size_t b = insert_lines_to( fb, fc, 5 ); if( a!=1 && b!=5 ) break; } fclose( fc ); fclose( fb ); fclose( fa ); }