Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » string mit Leerzeichen???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
09.09.2007, 17:21 Uhr
~Luciusperca
Gast


Hallo,


ich schreibe gerade an einer "Ersatz CMD". Sie basiert auf der system() Funktion. Der User muss einen String eingeben dieser Wird dann an die Funktion übergeben.

Mein Code Sieht bis jetzt folgendermaßen aus:


Code:

#include <iostream>
#include <string>
#include <windows.h>

using namespace std;

int main()
{

    string input;
    cout << "by Lucius}{perca_||  cmd: ";
    cin >> input;
    system(input.c_str());

return(main());

}



Leider funktioniert das nur bei Befehlen die nur aus einem Wort bestehen. Sobald ein Befehl aus zwei oder Mehr Teilen besteht wie z.B. ping 127.0.0.0, macht das Programm daraus zwei befehle.

Kann mir jemand vllt sagen wie man eine Variable an die system() Funktion übergibt und dabei die Leerzeichen erhalten bleiben???

Vielen Dank schon mal für alle Antworten.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.09.2007, 17:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi:

mal davon abgesehen das system intern erstmal cmd/command aufruft:


C++:
int main()
{
    for(;;) // endlosschleife ist einer rekursion vorzuziehen.
   {
    string input;
    cout << "by Lucius}{perca_||  cmd: ";
    getline(cin, input); // ganze zeile einlesen (parameter evtl andersrum, hab das nich im kopf grad)
    system(input.c_str());
   }
}


--
class God : public ChuckNorris { };

Dieser Post wurde am 09.09.2007 um 17:26 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.09.2007, 17:32 Uhr
Luciusperca



Jetzt hängt sich das Programm komplett auf wenn ich was eingebe.
Hab auch die Parameter schon vertauscht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.09.2007, 18:14 Uhr
Luciusperca



gibt es vllt noch eine andere möglichkeit?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.09.2007, 18:30 Uhr
Oliver
S2-Pixelgeneral


Mal cin.getline(...) probiert?
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.09.2007, 19:00 Uhr
~Luciusperca
Gast


mmh, funktioniert leider auch nicht.

Gibt es vllt noch eine andere Möglichkeit die Usereingabe der System() Funktion zu übergeben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.09.2007, 19:22 Uhr
xXx
Devil



C++:
// endlosschleife ist einer rekursion vorzuziehen.
nicht nur vorzuziehen, sondern auch bei main nicht erlaubt(also rekursion) ...


C++:
int main()
{
    bool continue = true;
    while (continue == true)
    {
        std::string input;
        std::cout << "by Lucius}{perca_||  cmd: ";
        std::getline(cin, input);
        std::system(input.c_str());
        std::cout << "Continue? (0 = Ja, 1 = Nein)" << std::endl;
        std::cin >> continue;
   }
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.09.2007, 19:38 Uhr
Kest
saint


Hi!

Also das vom xXx ist richtig gewagt!!!!! (das mit dem >continue<.

--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.

Dieser Post wurde am 09.09.2007 um 19:39 Uhr von Kest editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
09.09.2007, 19:48 Uhr
~Luciusperca
Gast


wenn ich den code so einbinde:


Code:

#include <iostream>
#include <cmath>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>


using namespace std;

int main()
{
    bool continue = true;
    while (continue == true)
    {
        std::string input;
        std::cout << "by Lucius}{perca_||  cmd: ";
        std::getline(cin, input);
        std::system(input.c_str());
        std::cout << "Continue? (0 = Ja, 1 = Nein)" << std::endl;
        std::cin >> continue;
   }
}




bekomme ich 8 Fehlermeldungen.
Unter anderem: error C2039: 'system' : Ist kein Element von 'std'

Ich benutze Microsoft Visual C++ 6.0 Pro. Kann es unter umständen am Compiler liegen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
09.09.2007, 19:49 Uhr
xXx
Devil



C++:
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>

int main()
{
    bool continue = true;
    while (continue == true)
    {
        std::string input;
        std::cout << "by Lucius}{perca_||  cmd: ";
        std::getline(cin, input);
        std::system(input.c_str());
        std::cout << "Continue? (0 = Ja, 1 = Nein)" << std::endl;
        std::cin >> continue;
   }
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: