如何使用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();
}
Run Code Online (Sandbox Code Playgroud)
hmj*_*mjd 13
您需要#include <string>
时,std::string
运营商都在头文件中定义.
表达式的结果newFolder + dir[i]
是a std::string
,并且mkdir()
需要a const char*
.改成:
mkdir((newFolder + dir[i]).c_str());
Run Code Online (Sandbox Code Playgroud)
检查返回值mkdir()
以确保成功,如果不使用则strerror(errno)
获取失败的原因.
这访问超出了数组的末尾dir
:
for (int i = 0; i<=5; i++){
mkdir(newFolder + dir[i]);
Run Code Online (Sandbox Code Playgroud)
还有5
的元素dir
,所以法律索引是从0
到4
.改成:
for (int i = 0; i<5; i++){
mkdir(newFolder + dir[i]);
Run Code Online (Sandbox Code Playgroud)
使用std::string
的newFolder
,而不是char[20]
:
std::string newFolder;
Run Code Online (Sandbox Code Playgroud)
然后,您不必担心输入超过19个字符(空终止符需要1个)的文件夹.