Вам нужно #include <string>
, в этом заголовке определены операторы std::string
.
Результатом выражения newFolder + dir[i]
является std::string
, а mkdir()
принимает const char*
,Измените на:
mkdir((newFolder + dir[i]).c_str());
Проверьте возвращаемое значение mkdir()
, чтобы убедиться в успехе, если не используете strerror(errno)
, чтобы узнать причину сбоя.массив dir
:
for (int i = 0; i<=5; i++){
mkdir(newFolder + dir[i]);
В dir
есть 5
элементов, поэтому допустимые индексы могут быть от 0
до 4
.Измените на:
for (int i = 0; i<5; i++){
mkdir(newFolder + dir[i]);
Используйте std::string
для newFolder
вместо char[20]
:
std::string newFolder;
Тогда вам не нужно беспокоиться о папке длиной более 19 символов (1 требуется для нулевого терминатора) вводится.