Ich versuche, (in C++) einige Eingaben von der Tastatur zu bekommen, die ich für die spätere Verwendung speichern möchte. Dies ist nur eine vereinfachte Version des Codes auf ich arbeite, aber es gibt das gleiche Verhalten:Warum wird getline (...) auf dem Bildschirm gedruckt?
#include <iostream>
int main(int argc, char * * argv)
{
std::string line;
std::cout << "> ";
std::getline(std::cin, line);
return 0;
}
getline
liest richtig die Eingabe von stdin, aber die Eingabe wird in einer neuen Zeile unmittelbar nach gedruckt. Außerdem wird der Leerraum nach dem Zeichen >
beim Lesen meiner Eingabe ignoriert, aber danach gedruckt. Etwas wie:
>hi
> hi
Warum passiert das? Wie kann ich es vermeiden?
Ich bin auf Windows 10, mit CLion 2016.1 (das passiert auf CLion-Konsole).
Welchen Compiler benutzen Sie? Führen Sie den Code vom Compiler aus? – NathanOliver
Sie müssen die Ausgabe wahrscheinlich leeren, um sicherzustellen, dass sie erscheint, wenn sie angezeigt werden soll. Andernfalls ist der Zeitpunkt des Drucks implementationsdefiniert. –
[Kann nicht] (http://coliru.stacked-crooked.com/a/9c803cd4281ed0c9) [reproduce] (http://ideone.com/7XV0UM) [dies] (http://imgur.com/AvAyaUB) [ Verhalten] (http://imgur.com/2BjuFCc). –