Question:
How do I send the output of my program to the standardprinter installed in Win95 or NT?
Is it possible using the <<-operator ?
Answer:
The answer to both questions is yes. Using Visual C++, I built a console application, shown below:
#includeTo 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 as lpt1.#include #include FILE *stream;void main( void ){// Open stream to lpt1 port stream =3D fopen( “lpt1”, “w” ); if( stream =3D=3D NULL ) fprintf( stdout, “error on lpt1
” ); else { stdiostream myStream( stream ); // “It works” will go to a printer referenced by lpt1 myStream << "It works. "; fclose( stream ); }}
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 fopen
. Finally,when you’re finished with a file you opened, you should close it by calling fclose
.