首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

readir读不出文件,死循环了,哪位大哥给看看解决办法

2012-03-02 
readir读不出文件,死循环了,哪位大哥给看看#includestdio.h#includesys/type.h#includesys/stat.h#i

readir读不出文件,死循环了,哪位大哥给看看
#include   <stdio.h>
#include   <sys/type.h>
#include   <sys/stat.h>
#include   <direct.h>
#include   <stdio.h>
#include   <ctype.h>

int   main(int   argc,   char   *argv[])
{
char   dirname[40];
DIR   *dirptr;
struct   dirent   *entry;
int   repeat   =   1;
printf( "please   input   a   directory   to   list   :\n ");
gets(dirname);
dirptr   =   opendir(dirname);
if(dirptr   ==   NULL)
{
printf( "can   not   open   dir   %s   \n ",   dirname);
exit(1);
}
do
{
entry   =   readdir(dirptr);
while(entry   !=   NULL)
{
printf( "list   :     %s   \n ",   entr-> d_name);
}   /*到这里就死循环了,没有读出任何文件,除了小点点*/
printf( "do   you   want   to   review?(y   or   n) ");
if(toupper(getchar())   ==   'N ')
{
repeat   =   0;
}
else
{
rewind(dirptr);
}
}while(repeat);
close(dirptr);
}


[解决办法]
entry = readdir(dirptr);
while(entry != NULL)
{
printf( "list : %s \n ", entr-> d_name);
} /*到这里就死循环了,没有读出任何文件,除了小点点*

------------------------------------------

楼主,你把entry当成啥啦?
readdir()一次读取出一个目录项.有内部指针来标识当前位置
改成这样.

while((entry = readdir(dirptr))!= NULL)
{
printf( "list : %s \n ", entr-> d_name);
} /*到这里就死循环了,没有读出任何文件,除了小点点*

热点排行