
Ich habe ein seltsames Problem beim Schreiben von C++-Code in Xcode auf einem MacBook. Ich weiß, dass der Code nicht fehlerhaft ist, da ich ihn von Windows-Benutzern ohne Probleme ausführen ließ, aber irgendwie stimmt die Ausgabe, die ich erhalte, meistens nicht mit der Eingabe überein. Ich habe vergeblich versucht, Xcode neu zu installieren. Hier ist der Code, den ich ausführe:
#include <string>
#include <iostream>
int main() {
std::string test = "";
while (std::cin >> test) {
std::cout << test << "\n";
}
return 0;
}
Ich verwende die Konsole innerhalb von Xcode, um Benutzereingaben zu machen. Hier sind einige Beispiele für die Ausgabe, die ich erhalte:
Eingabe: 1+(2+2)
Ausgabe: 1+()2+2
Eingabe: 2*(-(8/2))
Ausgabe: 2*()()-8/2
Kommentar: In den Feldern sind Fragezeichensymbole dargestellt. Es sieht aber so aus, als würden diese beim Einfügen hier nicht angezeigt.
Für jede Hilfe wäre ich sehr dankbar.
Antwort1
Ihr Kommentar zu den Cursortasten hat das Problem geklärt.
Normalerweise verlassen sich die C/C++-Laufzeit-Stdio-Bibliotheken auf die Terminalimplementierung des Systems, um mit Sondertasten wie Cursorn umzugehen, sodass das Programm sogenannte „gekochte“ Terminaleingaben erhält, bei denen alle Merkwürdigkeiten herausgefiltert werden.
Leider ist das Konsolenfenster in XCode kein richtiges Terminal und einige Dinge kommen durch.
Dies ist etwas, das spezifisch für XCode und sein Konsolenfenster ist. Es sollte nicht passieren, wenn das kompilierte Programm von einem normalen Terminalfenster aus ausgeführt wird. Das Drücken der Cursor dort erzeugt einige seltsame Zeichen auf dem Bildschirm, aber sie kommen nicht auf std::cin an.