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时输出只按任意键继续...
双斜线是正确的.检查错误号以找出失败的原因:
如果创建了新目录,则每个函数都返回值0.如果出错,则函数返回-1并按如下方式设置errno:
EEXIST - 未创建目录,因为dirname是现有文件,目录或设备的名称.ENOENT - 未找到路径.
注意:
_mkdir每次调用只能创建一个新目录,因此只有dirname的最后一个组件才能命名新目录.
可能的原因:
a并b使用相同的调用(例如使用SHCreateDirectoryEx())