Получение пути к файлу из переменной в C, C ++ - PullRequest
0 голосов
/ 25 января 2020

Я делаю небольшой проект, используя C, C ++ и dirent.h. Я хочу спросить, возможно ли взять путь к папке / файлу из переменной:

string fileName;
cout << "Create new file" << endl;
cin>>fileName;

CreateDirectory(documentLocation.c_str()+fileName.c_str(), NULL);

documentLocation - это моя переменная, которую я дал в начале программы, где я хочу создать новую каталог. Добавив fileName, я хочу создать новый каталог в этой папке. Но я получаю ошибку:

выражение должно иметь целочисленный тип или тип enum

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Вы не можете использовать + для объединения C строк. Сначала объедините std::string s, затем получите строку C из этого.

CreateDirectory((documentLocation + fileName).c_str(), NULL);
1 голос
/ 25 января 2020

c_str() возвращает const char *, поэтому в

documentLocation.c_str()+fileName.c_str()

Вы пытаетесь добавить два const char *, что не работает.

std::string перегружает + оператор:

std::string path = documentLocation + fileName;
CreateDirectory(path.c_str(), NULL);

Сначала добавьте (объедините) две строки, затем возьмите c_str() результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...