正如标题所说,我不能使用" cd"甚至是一个超级简单的C ++程序。更确切地说,我可以使用它(即它编译并且不会抛出任何错误),但它继续进行,好像我没有。
我的代码如下:
#include <iostream>
#include <cstdlib>
int main()
{
system("cd");
system("dir");
system("cd C:\\Users\\Sajado");
system("dir");
return 0;
}
输出窗口两次都返回项目目录的目录列表。我也尝试过使用其他文件夹的路径,包括更高和更低的文件夹
cd ..
也没有效果。
如果有帮助,我正在使用代码块。我无论如何都没有C ++或cmd专家所以我可能会遗漏一些非常明显的东西。任何人都知道为什么这可能会行为不端?
答案 0 :(得分:2)
作为explained here,您需要执行以下操作:
system("cd C:\\Users\\Sajado && dir");
由于
更改的目录仅持续系统的持续时间 命令。该命令启动一个单独的程序,该程序继承它 您的程序中的当前目录,但该程序退出时 当前目录随之死亡。
答案 1 :(得分:0)
正如@drescherjm所指出的,system
调用是相互隔离的,所以如果你将工作目录改为一个,它将不会反映在后续的调用中。
你可以这样做:
system("cd C:\\Users\\Sajado && dir");
或者更好的是,使用dir
命令的参数:system("dir C:\\Users\\Sajado");