(Request) Console in C++

12/20/2011 20:50 jacky919#16
Ich war mir auch nicht sicher. Als ich es dann nachgucken wollte habe ich das entdeckt und das hat mich dann ein wenig stutzig gemacht. Es liegt aber auch sicher daran, dass die Funktion nicht zum C++ Standard gehört und dann bei verschiedenen Compilern/Versionen anders implementiert ist.
12/20/2011 21:53 MrSm!th#17
bei visual studio unter den project settings, weiß aber gerade nicht genau wo.
#undef UNICODE würde aber auch reichen.
12/20/2011 22:26 The Steven#18
So noch ne kurze Frage:

Folgende Eingabe:

Echo Hi

Ergibt folgendes: Zwei Befehle werden ausgeführt: Echo & Hi
Wobei nur Echo erkannt wird logischerweise.

Echo.Hi

Gibt mir "Hi" aus.

Ping, Net Send usw. funktioniert alles nicht, aufgrund der Leerzeichen.
Kleiner Tipp wäre super!

Lg
12/20/2011 22:35 MrSm!th#19
cin liest nur bis zu einem Leerzeichen, einem Tabstop oder einer Newline ein.
Lies halt in einer Schleife so lange durch, bis der gesamte Input Stream wieder leer ist und hänge dann alles aneinander.
12/20/2011 22:56 The Steven#20
Jap, müsste ja soweit mit Getline funktionieren,
nur so wie ichs getestet hab gehts halt nicht:

Code:
    string cmd;
    getline(cin, cmd);
	cin >> cmd;
Ignoriert ebenfalls alles nach dem Leerzeichen.
Mfg
12/21/2011 08:48 jacky919#21
Quote:
Originally Posted by The Steven View Post
string cmd;
getline(cin, cmd);
cin >> cmd;
Lass das rote mal weg, dann gehen echo, ping usw. bei mir.
12/21/2011 13:58 The Steven#22
Funktioniert, nur wieso muss ich das cin >> cmd; weglassen?

Reicht es aus, dass ich system(cmd.c_str(); nutze?


Lg
12/21/2011 14:36 MrSm!th#23
Quote:
Originally Posted by MrSm!th View Post
cin liest nur bis zu einem Leerzeichen, einem Tabstop oder einer Newline ein.
Lies halt in einer Schleife so lange durch, bis der gesamte Input Stream wieder leer ist und hänge dann alles aneinander.
^das!

Du überschreibst den Inhalt von CMD ja wieder per cin, ist doch klar, dass du das dann weglassen musst!
12/21/2011 16:18 The Steven#24
Danke Smith, der Post hat mir geholfen, hab das Prinzip jetzt verstanden! ;)
12/21/2011 17:55 jacky919#25
Wenn du es dir nochmal genau durchlesen willst: [Only registered and activated users can see links. Click Here To Register...]
Der erste Parameter ist der Konsoleneingabestream (Consol Input)
Der zweite ist der String, in dem der Inhalt gespeichert werden soll. Beides sind Referenzen also werden keine Pointer benötigt. Der dritte Parameter muss nicht angegeben werden, wenn man ihn angibt definiert er den den Buchstaben bei dem das Einlesen terminiert werden soll.
12/21/2011 18:34 .SkyneT.#26
Quote:
Originally Posted by The Steven View Post
Hm, stimmt mit windows + string funktionierts.

Hab jetzt das erreicht was ich wollte.

@ Smith, definiere "umstellen" ?

Danke & Lg
Projekt -> ****-Eigenschaften -> Konfigurationseigenschaften
Dort solltest du den Zeichensatz verändern können.

MfG
12/21/2011 18:58 The Steven#27
Quote:
Originally Posted by jacky919 View Post
Wenn du es dir nochmal genau durchlesen willst: [Only registered and activated users can see links. Click Here To Register...]
Der erste Parameter ist der Konsoleneingabestream (Consol Input)
Der zweite ist der String, in dem der Inhalt gespeichert werden soll. Beides sind Referenzen also werden keine Pointer benötigt. Der dritte Parameter muss nicht angegeben werden, wenn man ihn angibt definiert er den den Buchstaben bei dem das Einlesen terminiert werden soll.
Alles klar danke!