【问题标题】:The execution of a line command in C++ run without returning the expected result [duplicate]在C ++中执行行命令运行时没有返回预期结果[重复]
【发布时间】:2014-11-25 15:44:32
【问题描述】:

我在 Qt creator 中使用 c++ 来执行命令行:

cd c:\
mkdir sadok 

这就是为什么,我使用了这些指令:

   int i, j;
   i=system ("cd c:\\");
   cout<<"i: "<<i<<endl;
   j=system("mkdir sadok ");

但我有两个问题:

1- 新文件夹的创建总是在默认路径下,而不是在 c:\

2- cmd 出现和消失的速度非常快,而且不显示任何内容。

请帮忙。

【问题讨论】:

  • 这个问题与 Qt、Qt Creator 或 QProcess 无关(来自您定义的标签)。
  • 通过调用system,您正在启动一个shell (cmd) 并将其告诉cd c:\\ 。很乐意接受,但这对您的计划没有影响。您不能通过调用system 来更改当前目录。每个操作系统都有自己的功能来做到这一点。你可以试试chdir,但不知道Windows下是否支持。
  • 你实际上并没有使用Qt,只是QtCreator,所以去掉qt标签。
  • 注意,对重复问题的接受答案实际上并没有回答这个问题。下一个下来。此外,您无需更改目录即可在任何地方创建新目录。 mkdir ("c:\\sadok") 一样好。
  • lpapp, Antwane 我正在使用 qt 但你看不到,因为我发布了两个指令而不是所有项目!

标签: c++ windows shell


【解决方案1】:

system ("cd c:\\");只是改变system()打开的shell中的工作目录,不会改变你程序的当前工作目录。

你可以试试

i=system ("cd c:\\; mkdir sadok");

i=system ("mkdir c:\\sadok");

【讨论】:

    【解决方案2】:

    您可以使用以下(更简单的)代码实现相同的目的:

    QDir dir;
    dir.mkpath("C:\\sadok");
    

    【讨论】:

      猜你喜欢
      • 2017-12-28
      • 1970-01-01
      • 2013-03-27
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 2020-05-17
      相关资源
      最近更新 更多