排除_mkdir故障

Suh*_*pta 2 c++ visual-c++ visual-c++-2010-express

#include <iostream>
#include <direct.h>
using namespace std;
int main() {
 if( _mkdir("d:\\a\\b") == 0 ){
   cout << "success";
 }    else if (  _mkdir("d:\\a") == EEXIST ) {
   cout << "Directory was not created because dirname is the name of an existing   file, directory, or device.";
      }
         else if (  _mkdir("d:\\a") == ENOENT ) {
      cout << "Path was not found.";
    }
}
Run Code Online (Sandbox Code Playgroud)

在运行程序时,输出是意外的.(大多数时候是失败.我不知道原因)

有时我看到成功.很多时候,如果我删除双斜杠\\单斜杠\消息是成功的.这件事让我很生气.为什么会这样?有backslashes问题吗?

UPDATE

在visual c ++ 2010 express edition中,当我按下CTRL + F5时输出只按任意键继续...

Geo*_*che 6

双斜线是正确的.检查错误号以找出失败的原因:

如果创建了新目录,则每个函数都返回值0.如果出错,则函数返回-1并按如下方式设置errno:
EEXIST - 未创建目录,因为dirname是现有文件,目录或设备的名称.ENOENT - 未找到路径.

注意:

_mkdir每次调用只能创建一个新目录,因此只有dirname的最后一个组件才能命名新目录.

可能的原因: