关于读取同一文件夹下的文档,C语言
答案:3 悬赏:50
解决时间 2021-03-24 19:50
- 提问者网友:她是我的お女人
- 2021-03-23 19:00
譬如我想要读一个文件夹a下的所有文档,不定数目,并且每个文档里有一个词,现在我希望能够打开这些文档,并把这些单词转换成一组指针,我是用readdir来打开文件的,但只懂打开而已,请问该怎么做呢?最好能写出大概的代码以便参考。
最佳答案
- 二级知识专家网友:安稳不如野
- 2021-03-23 20:33
#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可用,调试成功,结果正确。
#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可用,调试成功,结果正确。
全部回答
- 1楼网友:厌今念往
- 2021-03-23 22:33
前提是在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;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯