中易网

关于读取同一文件夹下的文档,C语言

答案:3  悬赏:50  
解决时间 2021-03-24 19:50
譬如我想要读一个文件夹a下的所有文档,不定数目,并且每个文档里有一个词,现在我希望能够打开这些文档,并把这些单词转换成一组指针,我是用readdir来打开文件的,但只懂打开而已,请问该怎么做呢?最好能写出大概的代码以便参考。
最佳答案
#include
#include
#include
#include
#include
#include
int main()
{
char *dir="d:\\";
DIR *dp;
struct dirent *entry;
struct stat statbuf;
char str[255][255];
int i=0;
FILE *fp;
if((dp=opendir(dir))==NULL)
{
fprintf(stderr,"cannot open %s",dir);
exit(1);
}
chdir(dir);

while((entry=readdir(dp))!=NULL&&i<255)
{
stat(entry->d_name,&statbuf);
if(!S_ISREG(statbuf.st_mode))
continue;
fp=fopen(entry->d_name,"r");
if(fp==NULL)
return 1;
fscanf(fp,"%s",str[i++]);
fclose(fp);
}
while(i>=0)
{
printf("%s\n",str[i--]);
}
return 0;
}
我不是在linux下,WIN下GCC可用,调试成功,结果正确。
全部回答
前提是在TC下编译运行,因为 dirent.h在TC 下有,WINTC 也是没有的, #include #include #define M 30 void main() { DIR *dp; char sp[M][30],i,j; FILE *fp; struct dirent *fname; char dirname[30],fn[13]; printf("\nEnter dir name"); gets(dirname); if ((dp = opendir(dirname)) == NULL) printf("Error opening %s\n", dirname); i=0; while (fname = readdir(dp)) { printf("\n%s",fname); fp=fopen(fname,"r"); fscanf(fp,"%s",sp[i]); fclose(fname); i++; } closedir(dp); for( j=0;j
  • 2楼网友:青灯壁纸妹
  • 2021-03-23 20:53
#include #include int main(int argc, char *argv[]) { struct _finddata_t fa; long fhandle; if( (fhandle=_findfirst( "*.txt", &fa ))==-1l )//这里可以改成需要的目录 { printf( "当前目录下没有txt文件\n"); return 0; } else do { printf( "找到文件:%s\n", fa.name ); }while( _findnext(fhandle,&fa)==0 ); _findclose( fhandle ); return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯