How do I send the output of my program to the standardprinter installed in Win95 or NT?
Is it possible using the <<-operator ?
The answer to both questions is yes. Using Visual C++, I built a console application, shown below:
void main( void )
// Open stream to lpt1 port
stream =3D fopen( "lpt1", "w" );
if( stream =3D=3D NULL )
fprintf( stdout, "error on lpt1\n" );
stdiostream myStream( stream );
// "It works" will go to a printer referenced by lpt1
myStream << "It works.\n";
fclose( stream );
To print to the standard printer usually means you have a printer
connected to the PC's local parallel port. As a minimum there should be
at least one port installed that is referred to by the operating system
In a network scenario, it is usually not cost effective to
have one printer for each PC such that the printers are connected
directly to the PC's parallel port. Therefore it is often the case that
lpt1 is redirected to a printer that resides elsewhere on the network.
Regardless, to write data to lpt1 is the same as writing to a file.
All you have to do is call
fopen, passing lpt1 as the first parameter
and "w" as the second, indicating that you intend to write to lpt1.
fopen will return a valid FILE pointer if the file open is successful,
else it will return NULL.
At this point you could write to lpt1, which
will in effect print by using the
fprintf function. However, you want to
use the << operator. No problem. Just construct an object of type
stdiostream and pass it the FILE pointer returned from
when you're finished with a file you opened, you should close it by