deine vermutung stimmt. der erste code funktioniert, aber du benutzt keinen befehl, der das programm z.b. zum schluss auf eine taste warten lässt und somit kannst du den text gar nicht lesen.
der zweite code ist einfach kein c++-standard und deswegen compiliert der compiler es nicht. es gibt compiler, die da toleranter sind.
wenn du das programm zum schluss anhalten möchtest, damit du z.b. text lesen kannst, der eigentlich direkt verschwinden würde kannst du die zeile aus dem 3. code zum ende der main-funktion schreiben: "std::cin.get();" bzw. "cin.get();" wenn du "using namespace std;" vorher reingeschrieben hast. außerdem für den befehl immer die "iostream"-bibliothek einbinden.