2014-11-07 3 views
0

Я пытаюсь создать динамическое значение внутри строки. В приведенной ниже строке кода: char new_dir[] = "c:\\xyz";Vugen - создать динамическое значение в пути mkdir

Я хотел бы создать случайное число и использовать параметр для замены 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); 

ответ

0

srand() семена генератор случайных чисел со временем, в противном случае последовательность всегда одинакова. В Visual C генерируемые случайные числа находятся в диапазоне от 0 до 32767. Если это не делает достаточно длинное имя dir, сделайте это дважды, как в моем примере. Я заполнил имена файлов нулями.

#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; 
} 
+0

Удивительный! Извините за отложенный ответ. Спасибо, за помощь, очень ценим! – djs