如何使用 c++ 创建目录/文件夹。我尝试使用 mkdir() 但没有成功。我想编写一个程序,cin 是一个变量,然后使用这个变量来创建子目录和其中的文件。
我当前的代码。它表示 mkdir() 中的 + 运算符表示错误无操作数
char newFolder[20];
cout << "Enter name of new project without spaces:\n";
cin >> newFolder;
string files[] = {"index.php"};
string dir[] = {"/images","/includes","/includes/js","/contact","about"};
for (int i = 0; i<=5; i++){
mkdir(newFolder + dir[i]);
ofstream write ("index/index.php");
write << "<?php \n \n \n ?>";
write.close();
}
你需要#include <string>
, the std::string
运算符在该标头中定义。
表达式的结果newFolder + dir[i]
is a std::string
, and mkdir()
需要一个const char*
。改成:
mkdir((newFolder + dir[i]).c_str());
检查返回值mkdir()
确保成功,如果不使用strerror(errno)
以获得失败的原因。
这访问超出了数组的末尾dir
:
for (int i = 0; i<=5; i++){
mkdir(newFolder + dir[i]);
有5
中的元素dir
,所以合法索引来自0
to 4
。改成:
for (int i = 0; i<5; i++){
mkdir(newFolder + dir[i]);
Usestd::string
for newFolder
, 而不是char[20]
:
std::string newFolder;
那么您就不必担心输入的文件夹超过 19 个字符(空终止符需要 1 个字符)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)