Я пытаюсь добавить эти функции.C++ Файловая система
std::string GetDirectory(std::string path_name) {
boost::filesystem::path path(path_name.c_str());
path_name = path.string();
path_name.erase(
path_name.substr(
path_name.find_last_of(DIRECTORY_SEPARATOR),
path_name.length()
)
);
return path_name;
}
std::string GetName(std::string path_name) {
boost::filesystem::path path(path_name.c_str());
path_name = path.string();
path_name.erase(
path_name.substr(
0,
path_name.find_last_of(DIRECTORY_SEPARATOR)
)
);
path_name.erase(
path_name.substr(
path_name.find_last_of("."),
path_name.length()
)
);
return path_name;
}
std::string GetExtension(std::string path_name) {
boost::filesystem::path path(path_name.c_str());
path_name = path.string();
path_name.erase(
path_name.substr(
0,
path_name.find_last_of('.')
)
);
return path_name;
}
Я пытаюсь добавить:
C: \ Windows \ Users \ Example \ Desktop \ test.txt
GetDirectory
C: \ Windows \ Пользователи \ Пример \ Рабочий стол
GetName
тест
GetExtension
TXT
я получаю ошибки, хотя между path_name и стереть (период). Помощь была бы очень признательна, спасибо.
Пожалуйста, запрошенные сообщения об ошибках:
1> C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ Microsoft.CppBuild.targets (368,5): предупреждения MSB8004: Выходной каталог не заканчивается конечной косой чертой. Этот экземпляр сборки добавит косую черту, поскольку это необходимо для правильной оценки выходного каталога. 1> main.cpp 1> main.cpp (287): ошибка C2664: 'std :: _ String_iterator >> std :: basic_string, std :: allocator> :: erase (std :: _ String_const_iterator >>, std :: _String_const_iterator >>) ': не может преобразовать аргумент 1 из' std :: basic_string, std :: allocator> 'в' unsigned int ' 1> main.cpp (287): note: нет оператора пользовательского преобразования, доступного, который может выполните это преобразование, или оператор не может быть вызван 1> main.cpp (301): ошибка C2664: 'std :: _ String_iterator >> std :: basic_string, std :: allocator> :: erase (std :: _ String_const_iterator >> , std :: _ String_const_iterator >>) ': не может преобразовать аргумент 1 из' std :: basic_string, std :: allocator> 'в' unsigned int ' 1> main.cpp (301): note: Нет пользовательского преобразования оператор, который может выполнить это преобразование, или оператор не может быть вызван 1> main.cpp (307): ошибка C2664: 's td :: _ String_iterator >> std :: basic_string, std :: allocator> :: erase (std :: _ String_const_iterator >>, std :: _ String_const_iterator >>) ': невозможно преобразовать аргумент 1 из' std :: basic_string, std :: allocator> 'to' unsigned int ' 1> main.cpp (307): примечание: нет оператора пользовательского преобразования, который может выполнить это преобразование, или оператор не может быть вызван 1> main.cpp (321): ошибка C2664: 'std :: _ String_iterator >> std :: basic_string, std :: allocator> :: erase (std :: _ String_const_iterator >>, std :: _ String_const_iterator >>)': невозможно преобразовать аргумент 1 из 'std :: basic_string , станд :: распределитель>»на„неподписанных Int“ 1> main.cpp (321): Примечание: ни один оператор определяемые пользователем преобразования доступны, которые не может выполнить это преобразование, или оператор не может быть назван
«Я получаю ошибки» - и точнее? – Markus
Отправленные сообщения об ошибках. –