Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Beginner
Mar 27, 1997



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Sending output to the standardprinter

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:


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\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 as lpt1.

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.

DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date