none
c标准库system函数的问题 RRS feed

  • 问题

  • 在D盘下存在名为“tes t”的文件夹(不包括双引号)
    程序代码如下:
    #include "stdlib.h"

    int main()
    {
        system("del D:\\tes t\\*.*");return 0;
    }
    不用说,程序一定有错,因为文件夹名称中有空格,参数传入时“D:\tes t\*.*”不是整体,在DEV-C++中编译运行,输出“找不到指定文件”,修改后:
    #include "stdlib.h"

    int main()
    {
        system("del D:\tes t\*.*"); return 0;
    }
    在DEV-C++中编译运行,控制台中输出
    “D:\*,是否确认(Y/N)?”输入y的话,会提示找不到“C:\Program Files\DEV-CPP\Examples\es”(“C:\Program Files\DEV-CPP\Examples\”是源代码在的文件夹),输入n的话不用说了吧
    再次实验
    #include "stdlib.h"

    int main()
    {
        system("del ""D:\tes t\*.*""");return 0;
    }

    #include "stdlib.h"

    int main()
    {
        system("del ""D:\\tes t\\*.*"""); return 0;
    }
    输出结果居然和上面没有改的一样,那到底怎么向system函数传入带有空格的路径

    2009年9月7日 15:12

答案

  • system("del \"D:\\tes t\\*.*\"");
    • 已标记为答案 Tim Li 2009年9月11日 3:19
    2009年9月8日 1:25
  • #include "stdlib.h"

    int main()
    {
        system("\"del D:\\tes t\\*.*\"");return 0;
    }


    麻烦把正确答案设为解答。
    • 已标记为答案 Tim Li 2009年9月11日 3:19
    2009年9月8日 2:26
    版主
  • 你要使用DOS命名法来表示路径.
    比如说Program Files这个文件夹在DOS下命名为Progra~1,C:\Program Files\Common\*.*表示为C:\Progra~1\Common\*.*

    0xBAADF00D
    • 已标记为答案 Tim Li 2009年9月11日 3:19
    2009年9月8日 5:57
    版主

全部回复