Stream merge: Difference between revisions

Content added Content deleted
m (while ( f2 != NULL) replaced by while ( !f2 ))
(faster)
Line 536: Line 536:
</lang>
</lang>
=={{header|C}}==
=={{header|C}}==
<lang C>
<lang C>/*
/*
* Rosetta Code - stream merge in C.
* Rosetta Code - stream merge in C.
*
*
* Two streams of integer numbers (human readable text files),
* Two streams (text files) with integer numbers, C89, Visual Studio 2010.
* C89, Visual Studio 2010, macros.
*
*
*/
*/
Line 560: Line 558:
if(f2) GET(2)
if(f2) GET(2)


while ( f1 || f2 )
while ( f1 && f2 )
{
{
if ( !f1 ) while ( !f2 ) PUT(2)
if ( b1 <= b2 ) PUT(1)
else if ( !f2 ) while ( !f1 ) PUT(1)
else PUT(2)
else if ( b1 <= b2 ) PUT(1)
else PUT(2)
}
}
while (f1 ) PUT(1)
while (f2 ) PUT(2)
}
}