Du bist nicht eingeloggt.

Login

Pass

Registrieren

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!

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -