1
我是C++的新手,我正在尝试使用dirent.h头来操作目录条目。在你修改一个目录名称之后,下面的小应用程序会编译但是会呕吐。有人可以给我一个提示吗? int的退出是为了提供一个while循环。我删除了该循环以尝试隔离我的问题。如何正确使用dirent.h
谢谢!
#include <iostream>
#include <dirent.h>
using namespace std;
int main()
{
char *dirname = 0;
DIR *pd = 0;
struct dirent *pdirent = 0;
int quit = 1;
cout<< "Enter a directory path to open (leave blank to quit):\n";
cin >> dirname;
if(dirname == NULL)
{
quit = 0;
}
pd = opendir(dirname);
if(pd == NULL)
{
cout << "ERROR: Please provide a valid directory path.\n";
}
return 0;
}
使用字符串确实解决了我的问题。我的C风格实现有什么问题? – Nick 2010-06-13 02:40:24
@Nick Youdon不会为dirname分配任何内存。如果你已经分配了内存,那么测试它是否为空的方法就是'if(!strcmp(dirname,“”))'' – 2010-06-13 07:33:54