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