Since you indicate that you are using Turbo C++, I presume that you are also writing for Windows. It would be better if you edited your question to include this information rather than posting it in an "answer".
Richard MacCutchan mentioned PrintDlgEx. This is part of the Windows API. It is not specific to VC++. However, it only goes back to Windows 2000 and PrintDlg, only goes back to Windows 95. I believe your Turbo C++ is a windows 3.1 era compiler, so access to these would not have be included with your compiler. For that matter, USB only goes back to 1996, so it wasn't around then either.
The real point here is that normal, run-of-the-mill windows printing is done differently than what you are trying. With the right setup it may still be possible to do something like that, but it is not normally done.
Instead you might consider learning the windows way of printing. It is more involved for the most basic printing, but much easier for anything beyond that. A good book on windows programming should have a chapter on it. And while the specific item Richard mentioned is more recent, most of this stuff does go back to windows 3.0.
No, I'm wrong. Your program is using
main
, not
WinMain
. Given the era of your compiler, you appear to be writing a DOS program with a DOS compiler. There is no support for interacting with USB printers. You will probably need to use something to fake out your program, pretending to be a parallel port, and routing stuff to the real printer. I recall some versions of windows as being able to "capture" a parallel port and route it to a printer. You will have to try that or find something like
this[
^] (I haven't used this.)