Так что, если вы собираетесь программировать в стиле C (даже если у вас есть компилятор C ++), вам придется узнать, как работают массивы и указатели. Это далеко слишком большой топи c, чтобы учиться у целых rnet вам нужна хорошая книга .
Однако я укажу некоторые из ошибки
char xy = ' ';
char* _DstBuf = &xy;
const char* uniquename;
uniquename = _getdcwd(0, _DstBuf, _MAX_PATH);
Это просто безнадежно неправильно. Он компилируется, но это не значит, что он будет работать. Это то, что требуется
char DstBuf[_MAX_PATH];
_getdcwd(0, DstBuf, _MAX_PATH);
_getdcwd требует массив , который передается как указатель (смотрите, вам нужно узнать о массивах и указателях).
Тогда вы попытаться распечатать результат и присвоить результат строке. Опять же, код гораздо сложнее, чем нужно. Вот более простая версия
std::string str = DstBuf;
std::cout << str <<'\n';
Затем вы пытаетесь изменить каталоги. Я не знаю, почему вы используете широкую версию _wchdir
, когда у вас узкие строки, вместо этого используйте _chdir
. И снова параметр неверен, '..'
является многосимвольным литералом, но для _chdir
требуется строка C. Вот правильная версия, используя _chdir
.
if (_chdir("..")) {
std::cout << "changing directory failed.\n";
}
Затем вы пытаетесь удалить каталог четыре раза, очевидно, вы не можете удалить каталог более одного раза.
И так далее, и т. д.