Java gets my vote, its a strictly typed language which will stop you picking up bad habits, and its easier to move from java to C++ than the other way round. However java can be a little harder to pick up then C++, but hey it's easier than haskell or pascal.
You also have the added benefit that in Java you do not need to worry about memory management, its all taking care of automatically, this has its downsides, but its nothing a beginner would particularly need to worry about.
Objective-C is another good language to learn but you really need a Mac to run the Xcode IDE.