我想通过命名myfolder1
,myfolder2
的方式在目录中创建文件夹。我尝试使用mkdir()
使用for loop
函数执行它,但它不采用'整数变量'而只采用'const char values'。现在做什么?有没有其他功能可以做到这一点或mkdir()
可以做到这一点?
答案 0 :(得分:4)
我不知道任何带有你想要的整数的库调用。您需要做的是将数字嵌入到字符串中,然后再将其传递给mkdir()。既然你用'c ++'标记了这个问题,我已经演示了一种以C ++为导向的方法来实现这个目的。
#include <sstream> // for std::ostringstream
#include <string> // for std::string
const std::string baseFolderName = "myfolder";
for (int i = 1; i < 20; ++i)
{
std::ostringstream folderName;
folderName << baseFolderName << i;
mode_t mode = 0; //TBD: whatever is appropriate
mkdir(folderName.str().c_str(), mode);
}
答案 1 :(得分:0)
如果您真的想要这个,可以使用itoa(...)
让我们说
i = 20;
char buffer [33];
itoa (i,buffer,10); //10 means decimal
现在buffer = "20\0"
转换完成后,您可以将buffer
添加到默认字符串中。
所以,总而言之,你可以使用:
std::string str = "string";
char buffer[33] ;
itoa(20, buffer, 10);
str.append(buffer);
mkdir(str.c_str());