Okay, zur ersten Frage: Die Verdrehung erfolgt, weil die Funktionen, die als Operanden an cout übergeben wurden erst ausgeführt werden müssen, bevor der Rückgabewert eigesetzt und der Text ausgegeben werden kann. Beispiel:
Code:
int foo()
{
 cout << "bar";
 return 0;
}
 cout << "foo" << foo();
Das gibt nicht "foobar0", sondern "barfoo0" aus. Zuerst wird die Funktion foo() aufgerufen, welche "bar" ausgibt. Erst dann hat das Programm den Rückgabewert 0 und kann ihn in den Text einsetzen.
Zum zweiten:
Dein std::cin.get(); wird ignoriert, weil der Eingabepuffer noch voll ist. Also musst du ihn leeren. Das geht z.B. mit std::cin.sync();. Wenn du das vor der erneuten std::cin.get();-Anwendung aufrufst, sollte es wieder klappen.
Btw, schreib mal using namespace std; hinter deine Headereinbindungen. Dann kannst du dir das ewige std:: sparen. Und fasse deine Fragen in Zukunft bitte kürzer zusammen.

freundliche Grüße, Rolus