gpt4 book ai didi

在c中创建多个递归目录

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:21 24 4
gpt4 key购买 nike

我正在完成 cs50x(哈佛 cs50 的 edX(免费)版本)类(class),我正在尝试让自己变得有点棘手/懒惰/测试自己。

我正在尝试使用 C 程序创建我的 pset 所需的所有目录。

我上网查了一下,发现<sys/stat.h>包括 mkdir()函数,因此尝试创建一些嵌套循环以通过执行类似于 mkdir {pset1,pset1/{standard,hacker},pset2,pset2{standard... 的操作来创建所有必要的文件夹给我一个这样的目录结构:

pset1/Standard
pset1/Hacker
pset2/Standard

等...

我想到了这个:

#include <cs50.h>
#include <stdio.h>
#include <sys/stat.h>

int main(int argc, string argv[])
{
for(int i = 1; i <=8; i++)
{
string dir = argv[1];
sprintf(dir,"%s%i", argv[1], i);
mkdir(dir, 0777);
for(int j = 0; j<2; j++)
{
string subDir[] = {"Standard","Hacker"};
sprintf(dir,"%s%i/%s", argv[1], i, subDir[j]);
mkdir(dir, 0777);
}
}
}

但是,该程序只创建了 pset1并完成,没有子文件夹,没有pset2

最佳答案

是的,你很懒惰,因为你似乎对 C 知之甚少,却尝试用它来编程。 :)

C 不是 Python,没有字符串插值/格式化运算符。你必须调用一个函数,特别是 snprintf() .阅读该手册页。

此外,您不能通过一次调用 mkdir() 来创建一堆嵌套目录。阅读the manual page .

要创建嵌套目录,您要么必须构建每个目录的绝对路径(即,每次连续调用 mkdir() 时,路径都会比上一次长),或者实际上输入您创建的每个目录,然后从那里开始。

关于在c中创建多个递归目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28873249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com