目录列表程序出错,c++
Directory lister program is faulty , C++
我正在编写一个程序来收集目录和用户文件夹名称,请记住,我这样做是作为一种爱好,尽管如果我幸运的话,明年我可能会学习计算机科学。
语言:c++
IDE: Code Blocks
问题:它应该在下面的目录中创建一个包含文件列表的文本文件,但是当我运行它时,它没有这样做,它什么也不做。
代码:
void directory_lister() // List folders in respective directories.
{
string dir_hos = " ";
int cycle = 0;
string dir_program = "C:\Program Files\";
string dir_program32 = "C:\Program Files (x86)\";
string dir_users = "C:\Users\";
while (cycle < 3){
if(dir_hos != dir_program){
dir_hos = dir_program;
cycle++;
DIR *dir = NULL;
struct dirent *drnt = NULL;
opendir(dir_hos.c_str());
while((drnt = readdir(dir))) // Faulty code #1.
{
w_file("directorylist.txt",drnt->d_name);
}
closedir(dir);
cout << cycle;
}else if(dir_hos != dir_program32){
dir_hos = dir_program32;
cycle++;
DIR *dir = NULL;
struct dirent *drnt = NULL;
opendir(dir_hos.c_str());
while((drnt = readdir(dir))) // Faulty code #2.
{
w_file("directorylist.txt",drnt->d_name);
}
closedir(dir);
cout << cycle;
}else if(dir_hos == dir_users){
dir_hos = dir_users;
cycle++;
DIR *dir = NULL;
struct dirent *drnt = NULL;
opendir(dir_hos.c_str());
while((drnt = readdir(dir))) // Faulty code #3.
{
w_file("directorylist.txt",drnt->d_name);
}
closedir(dir);
cout << cycle;
}
}
return;
}
int main(){
directory_lister();
return 0;
}
同样w_file函数是这样的:
void w_file(string filename_s, char * content)
{
// Change string to const char *
const char * filename_cc = filename_s.c_str();
// Writing File Code
ofstream file;
file.open(filename_cc,ios::app);
file << content << endl;
file.close();
return;
}
编译器输出:
进程终止状态为0(0分钟,1秒)0错误(s), 0警告(s)(0分钟(s), 1秒(s))
错误代码#1,#2,#3:
在此之前,我没有额外的括号,例如while(drnt = readdir(dir)),但是编译器给了我3个关于没有足够的括号的警告(编译成功但不工作),所以我添加了它们,但它仍然不工作。
我也尝试使用"=="而不是"=",但它挂起了程序,它崩溃了。在它崩溃之前,它成功地制作了"directories.txt"。
:
我想还有其他代码我没有写好,但我不知道,因为我不擅长编程。你们能帮我修一下吗?我相信我会从中学到一些东西。谢谢你!
另一个注意事项:
我不是特别擅长使用direct .h,每次我使用它我都很模糊,我通常查找示例并复制最简单的使用(我很惭愧,但我在阅读文档时非常困惑)。
提供给readdir()
的参数应该是opendir()
先前返回的值-在您提供空指针时导致错误。
opendir()
返回的值永远不会存储在变量中——这意味着它会立即被丢弃,当然也不会传递给readdir()
。
检查函数的返回值通常是个好主意。例如,opendir()
在出错时返回空指针。
我还没有仔细观察,以确定是否有其他问题....但是解决我发现的问题对你来说是有教育意义的。
- 重载操作程序时出错>>用于类中的字符串 memebr
- 分段错误当我试图运行程序时出错
- 使用 Visual Studio 2019 构建 Hello World wxwidgets 应用程序时出错
- 在另一台 PC 上执行程序时加载 SDL2 共享库时出错
- 修改气泡排序的程序出错
- 包含多维数组的程序出错
- 程序出错C++
- 检查完美的程序出错了
- 带有私有构造函数的程序出错
- LunarLander程序出错:符号未解析
- C++程序出错
- 结构:初始化程序出错
- 编译简单的应用程序出错
- 在树莓派上编译c++ opencv应用程序出错
- 链接基于Qt的应用程序出错
- 简单数学程序出错
- 具有未定义行为但从未实际执行的表达式是否会使程序出错
- 目录列表程序出错,c++
- Qt LNK2019 基本 Qt5 应用程序出错
- 我的简单阶乘计算器c++程序出错了吗?