|
Community
Szene & News
Locations
Impressum
|
Forum / Bits und Bytes
std::cin Spezialabfrage [gelöst]

WhiteMike
Fortgeschrittener
(offline)
Dabei seit 05.2005
58
Beiträge
|
Geschrieben am: 28.06.2008 um 10:41 Uhr
Zuletzt editiert am: 28.06.2008 um 14:15 Uhr
|
|
Hey, Leute.
Meine Anwendung hat zwei Fenster. Das Konsolenfenster soll Infos ausspucken und Input einlesen, während das Windows-Fenster 3D-Grafiken zeichnen wird.
So weit so gut.
Das Problem ist, wie ich den Input aus der Konsole abfragen und gleichzeitig weiter im Windows-Fenster rumzeichnen kann.
Womit es nicht geklappt hat, ist das hier:
___________
while(m_Irr.pDevice->run())
{
std::string t_Input;
if(std::cin.good())
{
std::cin >> t_Input;
}
getSimulation()->Run(t_Input);
}
___________
Gibt es eine Möglichkeit, wie ich damit in einem Thread fertig werde, oder muss ich auf Multithreading ausweichen?
Mit freundlichen Grüßen, WhiteMike.
|
|
gaucho - 41
Halbprofi
(offline)
Dabei seit 10.2004
120
Beiträge
|
|
Geschrieben am: 28.06.2008 um 11:23 Uhr
|
|
Evtl. könntest Du es noch über cin.get() bzw. cin.getline() versuchen, aber ich zweifle daran, dass das den gewünschten Effekt bringt.
Schätzungsweise blockiert eine Konsolen Eingabe in jedem Fall den laufenden Thread, so dass auch ein Umweg über die alten C-Funktionen (scanf,getchar,...) nicht viel bringen dürfte.
|
|
WhiteMike
Fortgeschrittener
(offline)
Dabei seit 05.2005
58
Beiträge
|
|
Geschrieben am: 28.06.2008 um 14:14 Uhr
|
|
Zitat von gaucho: Evtl. könntest Du es noch über cin.get() bzw. cin.getline() versuchen, aber ich zweifle daran, dass das den gewünschten Effekt bringt.
Schätzungsweise blockiert eine Konsolen Eingabe in jedem Fall den laufenden Thread, so dass auch ein Umweg über die alten C-Funktionen (scanf,getchar,...) nicht viel bringen dürfte.
Jep. Genau das ist mein Problem: Der Thread wird blockiert.
// EDIT:
Gerade hat mich eine Nachricht erreicht, wie ich das doch perfekt und bequem lösen kann.
:)
=> erledigt!
Mit freundlichen Grüßen, WhiteMike.
|
|
TheBrainless - 38
Experte
(offline)
Dabei seit 04.2005
1992
Beiträge
|
|
Geschrieben am: 28.06.2008 um 14:36 Uhr
|
|
hm, könnteste vllt noch posten, wie das gelößt wurde?
ich denk, hier gibt es evlt auch noch andre leute, die ähnliche probleme ham (könnte mir gut vorstellen, dass das bei mir demnächst auch der fall sein wird^^)
Mörps mörps blubbs!
|
|
WhiteMike
Fortgeschrittener
(offline)
Dabei seit 05.2005
58
Beiträge
|
Geschrieben am: 29.06.2008 um 16:54 Uhr
Zuletzt editiert am: 29.06.2008 um 16:55 Uhr
|
|
_________________________
#include <conio.h>
if(_kbhit())
{
std::string t_Input;
std::cin >> t_Input;
processCmd(t_Input);
}
_________________________
Der Thread wird immer noch angehalten, aber nur, wenn man gerade wirklich ein Kommando tippt. Soll das Programm doch noch weiterlaufen, während man tippt, kommt man an Multithreading wohl doch nicht vorbei. Das ist dann aber auch kein Ding. In meinem Programm wird es nicht auffallen, weshalb ich es auch dabei belasse. :)
Was programmierst du denn?
Mit freundlichen Grüßen, WhiteMike.
|
|
TheBrainless - 38
Experte
(offline)
Dabei seit 04.2005
1992
Beiträge
|
|
Geschrieben am: 30.06.2008 um 17:35 Uhr
|
|
Ich bin grad dabei, mich n bisschen in C++-Programmierung einzuarbeiten, da ich hier an der Uni bei den Fussballrobotern mithelf und evtl sollen dabei zur Positionsbestimmung Maussensoren verwendet werden... Da wir aber noch am rumpexperimentieren sind, ob die Überhaupt geeignet sind, wollte ich erstmal die Mausausgaben direkt abfragen und ma gucken, was man da so für Daten bekommt (Anscheinend reagieren die Mäuse je nach Quelle bis zu 1 - 3 m/s zuverlässig, da die Robis bis 3m/s schnell werden, könnte es Probleme geben)
Mörps mörps blubbs!
|
|
Forum / Bits und Bytes
|