Fehler mit system() und getline()



  • Mein Prog hat eine Eingabeaufforderung mit der man Befehle ausfürhren kann, die Eingabe erfolgt in einer do-while Schleife.
    Ich hab folgendes Problem, wenn ich mit cin ein String einlese und an system() weitergebe gibts kein Fehler, aber mit getline() schon. Dann kommt Fehler:

    Microsoft Visual C++ DEbug Libary
    Debug Assertion Failed
    Expression: *command != _T('\0');

    Ich vermute das hat etwas mit der Eingabe auf sich, ich hab mal in einer anderen Datei das ausprobiert:

    string str;
    	cout << "exec: ";
    	//cin >> str;
    	getline(cin ,str);
    	system(str.c_str());
    

    Sobald man nur die Eingabetaste drückt ohne etwas einzugeben kommt der Fehler.
    Könnt ihr mir helfen



  • offenbar mag system keinen leeren string als argument. Den musst du mit einer if-abfrage also rausfiltern.



  • sind getline und cin kompatibel?
    das ist kein ansi c, also muss ich das nicht wissen.


Anmelden zum Antworten