It is unfortunate that many people in India and the Middle East are stuck using software that is very old. Many people go to school to learn computer programming, or get a job to do it, and are actually required to use things like the ancient Turbo C++ 4.0 or the like.
Sadly, those compilers, while excellent for their time, are not compatible with the current state of the art. They are designed for 16-bit Windows systems; they are non-standard; they frustrate people like the OP because they don't work the way people on the net say C++ should work.
Unfortunately options are slim if you stick with a compiler that old.
1) The best thing you can do is convince your school's CS department chair or employer or whoever that it is worth their time to get a modern compiler. Both Microsoft VC++ and GCC (MinGW) toolchains are excellent and free
. You can continue to compile legacy code with the older compiler -- it will still work -- but also write new code with the new compiler.
2) Modify your compiler to approximate modern methodologies. Yes, you can find stuff to give you "windows.h" and more modern versions of the STL (to some degree) using the older compilers, but they will never be quite the same -- there will always be an obvious problem with them. In some cases this is your only option. But it does require you to hack at your compiler in ways that may destabilize it -- meaning you'll break some other project that used to compile with it. Alas.
Sorry for the long answer. I should put this in the FAQ since it is a continuing problem over there. Sorry we don't have a better answer than "get yourself a real compiler," but at least you know why we say that. VC++ really is very nice, and free. Check out this article for a list of links to good compilers:
Hope this helps.