0

我正在尝试在字符串中创建一个动态值。在下面的代码行中:char new_dir[] = "c:\\xyz";

我想创建一个随机数并使用参数替换xyz,这将允许创建随机文件夹。

任何帮助表示赞赏!

char filename[1024], command[1024];
char new_dir[] = "C:\\xyz";

if (mkdir(new_dir))
    lr_output_message ("Create directory %s failed", new_dir);
else
    lr_output_message ("Created new directory %s", new_dir);

sprintf(filename, "%s\\%s", new_dir, "newfile.txt");
sprintf(command, "dir /b c:\\ > %s /w", filename);
system(command);
lr_output_message ("Created new file %s", filename);
4

1 回答 1

0

srand()随时间播种随机数生成器,否则序列始终相同。在 Visual C 中,生成的随机数在 0 到 32767 的范围内。如果目录名称不够长,请执行两次,如我的示例所示。我已经用零填充了文件名。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    char new_dir[64];
    srand ((unsigned int)time(NULL));

    sprintf (new_dir, "C:\\%05d", rand());
    printf("Short dir name is %s\n", new_dir);

    sprintf (new_dir, "C:\\%05d%05d", rand(), rand());
    printf("Longer dir name is %s\n", new_dir);

    return 0;
} 
于 2014-11-07T22:22:19.187 回答