У меня есть эта строка кодаC++ изменить каталог ofstream с строкой буфера файла
std::ofstream output(p_strFilename.c_str());
где p_strFilename
определяется из параметра функции
foo(const std::string &p_strFilename)
который спасительной кучу файлов в текущий рабочий каталог. Однако я хочу ввести шаг внутри этого каталога и сохранить файлы внутри. Я попытался
std::ofstream output("folder1\\"+p_strFilename.c_str())
это дает мне
error: invalid operands of types ‘const char [9]’ and ‘const char*’ to binary ‘operator+’
, который я думаю читает каталог как 9 символов вместо того, чтобы в виде строки.
Первый вопрос: это правильный способ ввода каталога? (двойная обратная косая черта и начиная с CWD, а не из домашнего каталога)
Второй вопрос: как я могу решить свою ошибку компиляции?
@RawN он должен, если: 1. p_strFilename имеет тип станд :: строки и 2. выход() принимает "константный символ *" в качестве параметра. Почему, по вашему мнению, он не компилируется? – Brutus
@RawN Если p_strFilename имеет тип «const char *», как это может быть p_strFilename.c_str() работает? Я думал, что c_str() был методом std :: string type ... – Brutus
, хотя это удалило мою ошибку компиляции, что происходит сейчас, так это то, что файлы все еще сохраняются в cwd с именем «folder1 \ file1». txt "," folder1 \ file2.txt "и т. д. Как я могу решить эту проблему –