我正在玩 dirent 库,我无法对我的目录列表进行排序。
我有这个比较器功能:
bool comparator (const dirent &a, const dirent &b) {
return a.d_name<b.d_name;
}
主要:
int main (){
vector<dirent> dirs;
DIR *dir;
struct dirent *drnt = NULL;
dir = opendir("./");
if(dir)
{
while(drnt = readdir(dir))
{
dirs.push_back(*drnt);
//printf("%-20s\n", drnt->d_name);
}
closedir(dir);
}
else
{
printf("Can not open directory\n");
}
sort(dirs.begin(), dirs.end(), comparator);
cout << "+++++++++++++++++++++++" << endl;
for (int i = 0; i < dirs.size(); i++){
cout << dirs[i].d_name << endl;
}
return 0;
}
但是排序是错误的......有人可以帮助我吗?