To respond to your second question, if you want to create GUI applications in C/C++, it is much much more complicated than console applications.
First, GUI development depends on a specific API (which, as I understand it, is a set of libraries which simplifies the interface between the machine and the programmer), and because APIs are not uniform across platforms, you need a specific API for every flavor of OS: Windows, Mac OS, Linux, whatever. If you want to write a GUI application for every one of those platforms, you will have to learn every API that is supported for those environments: either MFC, .NET, or Win32 for Windows, QT for KDE, GTK for Gnome, and I have no idea what they use in Mac. There's a library called WxWidgets which aims for platform neutrality, but if a user's computer doesn't have it installed, whatever you coded with this library will not work on their computer.
To give an example of how complicated even writing the canonical "Hello, World!" program with a Win32 API is (and I don't think it's much less complicated for the other libraries either), have a gander at this code:
http://www.paulgriffiths.net/program/c/winhellosrc.html
So if you want maximum bang in terms of GUI development with minimum effort, I'd recommend Java. As long as a user has JRE installed on his machine, your application will (probably) run on it.
If you're going to stick to MS Windows, I heard Visual Basic .NET or C# isn't half bad.