2

我想通过按 , 之类的顺序命名它们来在目录中创建文件myfolder1myfolder2。我尝试mkdir()使用 a 函数来执行此操作,for loop但它不采用“整数变量”,而只采用“const char 值”。现在要做什么?有没有其他功能可以做到这一点或可以mkdir()做到这一点?

4

2 回答 2

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);
}
于 2013-07-01T20:55:29.693 回答
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());
于 2013-07-01T20:50:30.677 回答