2012-04-14 5 views
0

Ich schreibe einen einfachen Namen mit einem Terminal-Umriss. Aber wenn ich eine Eingabe mit cin bekomme, versagt mein Rand. Gibt es eine Möglichkeit, den Zeilenumbruch nach der Eingabe über die Eingabe cin zu verhindern?Ich möchte nicht auf die Newline heraustreten nach der Verwendung von Std :: cin

Ich bin mit XCode 4.

+0

Wie wird es durcheinander gebracht? –

+0

Was meinst du mit newline verhindern? – vidit

+0

Zum Beispiel, wenn ich cin >> myInput; , Nach Eingabe meiner Eingabe springt es auf neue Zeile. es macht dasselbe mit Endline, nachdem ich meine Eingabe eingegeben habe, will es nicht passieren. –

Antwort

2

Wenn Sie die vollständige Kontrolle über das Terminal-Display wollen, müssen Sie wahrscheinlich die curses Bibliothek oder etwas ähnliches (ncurses auf GNU-Systemen, zum Beispiel) verwenden. Auf diese Weise können Sie die Anzeige von Zeichen steuern und das automatische Echo von Zeichen während der Eingabe unterdrücken. Daher wird keine neue Zeile angezeigt. Aber Sie werden stdin::cin nicht mehr verwenden.

Mit std::cin bedeutet, dass Sie akzeptieren müssen, dass Ihr Programm keine der Daten sieht, bis der Zeilenumbruch eingegeben wird, und dass das Terminal an diesem Punkt häufig scrollt. (Nicht immer; wenn sich die aktuelle Zeile in der Nähe des oberen Bildschirmrands befindet, wird nicht gescrollt.)