I have come to the conclusion that the biggest challenge for me doing all but the simplest things Arduino is learning more C++.
I need a simple compiler, downloaded or online, that I can experiment with requiring the minimum site/ program specific knowledge.
The biggest challenge I am facing seems to be I/O. (I really just want to follow values of my variables as I am trying to learn pointers.) Trying to run through examples from cplusplus.com using compileonline.com I am quickly stuck trying to use getline on compile.com and I can't figure out where the input screen/field is.
Is there a better way? I don't need huge functionality, or a million libraries and I am not planning on programming anything other than arduino sized programs and maybe libraries.
It would be extra nice if it also had emulation of serial I/O.
Why not just use the Arduino to learn C++? You can use classes, structures and even templates right in your sketch. If you use Arduino 1.5.7, you can also enable a setting that allows you to use C++11 features too.
The arduino is much more than what it seems, plus you get the serial monitor for a visual output.
I'd have thought the Arduino IDE would be the ideal environment, assuming you have an arduino hooked up. Why emulate anything if you can just hit the upload button and see it happen immediately.
The Arduino is a great system for learning-by-doing.
There are many many pieces of example code with the IDE and online
And tonnes of help here on the Forum.
Also, there are many practices that are "normal" on a PC with Gigabytes of memory which aren't suitable for an Arduino. Using Strings (with a capital S is one example). In the limited memory of an Arduino strings (with a small s) are better but are probably rarely used on a PC.
And finally, if one wanted to program a PC why would one bother to use C/C++ when there are so many easier options.
At the other end of the scale, if you are using windows, you could take the Netduino approach and use Visual Studio express. Free, and you can set breakpoints & examine variables. Bit of a learning curve though.