Fehler mit getline() & system()

partitionist

Erfahrenes Mitglied
Ich möchte ein Befehl mit Parametern an system() senden, könnt ihr mir helfen hab immer ein Fehler.:

string str;
getline(cin, str);

system(str.c_str());


Please Help
 
moin


Nein, das ist in diesem Fall ziemlich egal, da getline und cin.getline als ersten Parameter einen char * erwarten.
Drum wäre ein Umweg über ein char * eine Möglichkeit.

Edit:
Darf es auch eine C++ Lösung sein, oder sollte es per C gemacht werden?


mfg
umbrasaxum
 
Zuletzt bearbeitet:
moin


Warum dann nciht einfach so:
Code:
#include <string>
#include <iostream>

using namespace std;

int main()
{
	string befehl;

	cin>> befehl;

	system(befehl.c_str());

	return 0;
}


mfg
umbrasaxum
 
abgesehen davon, warum machst du so ein geheimnis drum ?
sag uns doch einfach was für eine fehlermeldung das ist ....:)
 
@umbrasaxum ->
die methode übergibt nur den ersten string und der rest entfällt
z.B. cmd /c dir -> /c dir würde entfallen deshalb brauche ich getline oder
ähnliches

Hab folgende meldung:
Microsoft Visual C++ Debug Libary
Debug Assertion Failed!
....
Expression: *command != _T("\0")
...
 
moin


Naja dann so:
Code:
#include <string>
#include <iostream>

using namespace std;

int main()
{
	string befehl;
	char szBefehl[100];

	cin.getline(szBefehl, 100, '\n');
	befehl = szBefehl;

	system(befehl.c_str());
	
	return 0;
}

Allerdings ist es so natürlich Unsinn erst noch in der Variable von Typ string zwischen zu speichern.


mfg
umbrasaxum
 
Zurück