如何利用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
2019-11-19 08:38
2019-11-19 09:15
2019-11-19 09:51
程序代码:#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 );
}
2019-11-19 10:10