关于C语言文件操作的一点问题,跪求大神答疑解惑

qq_40928476 2017-11-19 10:22:15
我想写一个文件搜索程序,编写的程序放在dir目录下,该目录下有src,hed两子目录,其下存放数个txt文件,要求控制台输入文件全名(不含后缀),列举出所有符合条件的文件及其各自位置,我现在的想法是检索出所有txt文件,存在指针数组中后面再匹配,可现在这样为什么什么都输出不了。。代码如下
#include <stdio.h>
#include <direct.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <io.h>
const char *to_search="D://QQbrowser//*.txt";
int main()
{
char *ptr_a[50];
int i=0,j;
char *buf=new char[strlen(to_search)+1];
long handle;
struct _finddata_t fileinfo;
handle=_findfirst(to_search,&fileinfo);
if(-1==handle)return -1;
while(!_findnext(handle,&fileinfo))
{
ptr_a[i]=fileinfo.name;
i++;
}
_findclose(handle);
for(j=0;j<i;j++)
{
printf("%s\n",ptr_a[j]);
}
system("pause");
return 0;
}
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-11-20
  • 打赏
  • 举报
回复
另外,buf指针没有使用。若不用,建议去掉;
自信男孩 2017-11-20
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <direct.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <io.h>

const char *to_search="D://QQbrowser//*.txt";

int main()
{
    char ptr_a[50][32];
    int i=0,j;
    char *buf=new char[strlen(to_search)+1];
    long handle;
    struct _finddata_t fileinfo;
    handle=_findfirst(to_search,&fileinfo);
    if(-1==handle)return -1;
    while(!_findnext(handle,&fileinfo))
    {
        strcpy_s(ptr_a[i], 32, fileinfo.name);
        i++;
    }
    _findclose(handle);
    for(j=0;j<i;j++)
    {
        printf("%s\n",ptr_a[j]);
    }
    system("pause");
    return 0;
}
试一下用 char ptr_a[50][32];

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧