2016-05-02 8 views
0

Sagen wir, ich habe einen Wert für meine Konsolenanwendung mit std::cout<< ausgedruckt und habe die Zeile nicht beendet, später wollte ich Daten in derselben Zeile hinzufügen und es in mein Programm über getline(cin, MyInput) eingeben, aber ich möchte es nutzen der ganzen Linie und nicht nur die Werte, die über die Tastatur eingegeben werden.Kann ich das, was ich ausgedruckt habe, als Eingabe am Konsolenfenster verwenden?

betrachte den auf dem Bildschirm ausgedruckten Wert ist 5 und dann * 6 wird über die Tastatur eingegeben, dann sollte mein Programm 5 * 6 multiplizieren! (das ist nicht der Zweck meines Programms, ich versuche nur, die Idee zu vermitteln)

Ich habe versucht, mit einer Variablen, die den Wert auf der Konsolenanwendung ausgedruckt hält und dann habe ich diese Variable wiederverwendet, aber das ist nicht das Ideal Lösung, was ich suche, ist eine Methode, um alles, was in einer Zeile gedruckt wird (egal ob von cin oder cout) als eins zu betrachten!

+0

Speichern Sie sie in einem Container? – blackmesa

+1

Was Sie als "nicht die ideale Lösung" betrachten, ist tatsächlich (Teil von) die ideale Lösung, nämlich dass das Programm eine Datenstruktur manipuliert, die völlig von I/O getrennt ist. – molbdnilo

+0

Uhh ... vielleicht könntest du, aber es wäre kompliziert und komisch. Diese Antwort hat Zeug, das Sie brauchen würden, aber es ist fast sicher nicht das, was Sie tun möchten, und es ist ziemlich weit fortgeschritten: http://StackOverflow.com/a/9084222/493106 – xaxxon

Antwort

1

Was Sie versuchen zu tun, klingt wie ein schlechtes Design. Wenn es einen Hintergrundprozess gibt, der von dem Benutzer gestartet wurde, der Müll in die Konsole spuckt, möchten Sie das wirklich als Teil Ihrer Eingabe übernehmen?

Was ich denke, Sie versuchen zu tun, einige Status gespeichert und als Teil der Eingabe/Ausgabe-Operationen abgerufen werden.

Der saubere Weg, dies zu tun ist, eine dedizierte Komponente/Bibliothek zu haben, die Eingabe/Ausgabe für Sie macht. Wenn Sie also etwas ausgeben, kann die Bibliothek es speichern (oder es verwerfen, wenn es nicht für den Speicher gedacht ist, z. B. Debug-Ausgabe). Wenn Sie etwas lesen möchten, kann dieselbe Bibliothek die gespeicherten Daten zurückgeben und sie mit den Daten kombinieren, die sie von cin erhält.

+0

Danke, ich versuche das jetzt zu tun! Es sieht so aus, als ob es keine Möglichkeit gibt, die Anzahl der Schritte zu reduzieren, die ich implementieren muss! – Aboudi

Verwandte Themen