C#. You will have a much, much higher probability of actually getting things done, won't be hampered by the language nearly as much and it'll probably be more rewarding. You can always transition to another language at a later time if you feel like it. You say you don't want to become a professional programmer, so there's no need for you to learn more than you need to. If C++ is a spork(You could take over the earth with a spork, given enough time and dedication and more time and some more time), C# is an intergalactic multitool, like the one Alyx uses to magically 'hack' stuff with in HL², or the ones found in Deus Ex, etc.
And you'll learn to develop general purpose programs in C#. Fast. Considerably faster than it'd take for you to make the same programs in C++. C# will become an asset for you, where C++ would become luggage until it'd been dragged along with you for longer than you'd wish.
If you really (really really) want to develop for iphones and/or androids, i'd say to go with Java, Java and/or Java, or don't go at all.
(I'm not saying that you don't want to learn C++ though. It's great, setting all bad things aside, and given enough time. Well actually it's not that great, but more like a long-long-term investment which might pay off, maybe)
If you don't have anything nice to say, don't say anything at all.