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