2017-03-21 2 views
-3

Also mache ich ein Skript, um eine TXT-Datei zu machen und Daten darauf zu legen, aber wenn ich das System() ausführen; Funktion, ich bekomme einen seltsamen Fehler. Hier ist der Code.Systemfehler C++

#include <iostream> 
#include <fstream> 
#include <stdlib.h> 
using namespace std; 

int main() 
{ 
    string textFileName = "SavedPasswords.txt"; 
    string currentPassword = "Pas123!()"; 
    string currentName = "Home"; 
    string seperator = "===================="; 

    ofstream textFile(textFileName.c_str()); 

    textFile << "N: " << currentName << endl << "P: " << currentPassword << endl << endl << seperator << endl; 

    string directory; 
    size_t path = textFileName.rfind("\\"); 

    if(string::npos != path) 
    { 
     directory = textFileName.substr(0, path); 
    } 

    string systemCommands[3] = {"cd\\", 
    "cd " + directory, 
    "start " + textFileName}; 

    system(systemCommands[0]); 
    system(systemCommands[1]); 
    system(systemCommands[2]); 
} 

C: \ Benutzer \ Benutzer \ Desktop \ SavePasswords \ main.cpp | 29 | Fehler: kann nicht konvertieren 'std :: string {aka std :: basic_string}' auf 'const char *' für Argument ' 1 'nach' int system (const char *) '|

Ich bekomme den gleichen Fehler für die nächsten zwei Zeilen.

+3

Haben Sie versucht System (systemCommands [0] .c_str()); ? – JGroven

+0

bevorzugen '' zu '' –

+0

googeln nur für den Fehler String gibt Ihnen die Antwort sofort –

Antwort

2

std::system()

akzeptiert nur Zeichenfolgen mit 'char *' Typ, der sich von 'std :: string' unterscheidet. Versuchen Sie 'systemCommands [0] .c_str()' zu verwenden Dieses Funktionsmitglied erhält 'const char *' Daten von 'std :: string' Internals. Überprüfen Sie this.

Verwandte Themen