Just nu i M3-nätverket
Gå till innehåll

Cannot convert parameter 1 from 'std::wstring' to 'const std::string'


Vilsen_

Rekommendera Poster

Hej alla glada!

 

Jag försöker göra en liten kodsnutt där jag vill kunna skriva in en sökväg till en fil med hjälp av getline(wcin, path).

jag vill sedan kunna skicka "path" till en annan funktion för att kontrollera om sökvägen finns eller inte.

 

mitt problem är nu att jag får ett fel enligt rubriken. såhär ser min kod ut.

 

#include <iostream>

 

#include <iomanip>

 

#include <string>

 

#include <windows.h>

 

using namespace std;

 

bool IfDirectoryOrFileExist(const string path, const bool CtrlDir);

 

int main()

 

{

 

HMMIO handle;

 

wstring path;

 

bool FileExist = false;

 

while(FileExist == false)

 

{

 

cout << "Enter the path including filename of the file you want to cut: " << endl;;

 

getline(wcin, path);

 

//if second param == 0 we are about to control a file and not a ddirectory

 

FileExist = IfDirectoryOrFileExist(path, 0);

if(FileExist == false)

 

cout << "The file or path you entered does not exist, Please try again. " << endl;

 

}

handle = mmioOpen((LPWSTR)path.c_str(), 0, MMIO_READ);

 

system("pause");

 

return 0;

 

}

 

bool IfDirectoryOrFileExist(const string path, const bool CtrlDir)

 

{

 

//Control if the file exist

 

if(CtrlDir == false)

 

{

 

HMMIO handle;

 

handle = mmioOpen(LPWSTR)path.c_str(), 0, MMIO_READ);

 

if(!handle)

 

{

 

cout << "Error opening file. " << endl;

 

return false;

 

}

 

return true;

 

}

 

}

 

Jag vill alltså kunna skriva in en sökväg till en fil och sedan kontrollera om sökvägen och filen finns. Kontrollen görs i "IfDirectoryOrFileExist()". Kompilatorn klagar på 4 saker men min fråga är i huvudsak varför den klagar på den raden som är rödmarkerad.

 

Tack för svar=)

Länk till kommentar
Dela på andra webbplatser

Jag tror jag löste problemet med converteringen.

 

Jag använde följande funktion:

 

string s(path.begin(),path.end());

 

därefter gick det bra att fortsätta till "IfDirectoryOrFileExist()".

 

Koden fungerar som den ska nu.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...