新手请教,c语言中提示找不到dir.h怎么回事,请高手赐教,谢谢!

cheng20100915 2010-06-07 06:25:03
c语言中提示找不到dir.h怎么回事

具体截图如下,(路径绝对正确):


我怀疑是dir.h文件有问题,于是打开其所在目录

发现内容只有一句话:
#include <io.h>
具体截图如下:

C:\Documents and Settings\cheng.jianbo\桌面\dir1.bmp

我用的是Cygwin,gcc编译
如果镇是dir.h的问题,我该怎么办?,是否要从新找一份dir.h文件,这样的文件哪有,
本人新学c语言1个星期了,
各位大哥,大姐,帮我把他搞定,谢谢!
...全文
650 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2010-06-08
  • 打赏
  • 举报
回复
findfirst不是标准C,貌似也不是Linux下的系统函数(因为没有man到),so……
cheng20100915 2010-06-08
  • 打赏
  • 举报
回复
我怎么才能使用到findfirst()这个函数啊,在网上查到说在dir.h文件里,可我的dir.h文件就只有一句话啊:#include <io.h>
是不是版本不同,其函数所在文件也不同??
在tc中的确有dir.h,也有其函数,但Cygwin,gcc 中就没有吗?
谁能告诉我怎么办啊?
赵4老师 2010-06-08
  • 打赏
  • 举报
回复
cheng20100915 2010-06-08
  • 打赏
  • 举报
回复
没有你说的那个目录,我的目录是C:\cygwin\usr\include\mingw\dir.h
这文件中就一句话: #include <io.h>
就只有这句
zhangweiit 2010-06-08
  • 打赏
  • 举报
回复
印象中,cygwin的dir.h文件在mingw32/目录下,楼主你找一下是不是在里面
cheng20100915 2010-06-08
  • 打赏
  • 举报
回复
怎么才能把截图发上去?
赵4老师 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 cheng20100915 的回复:]
我怎么才能使用到findfirst()这个函数啊,在网上查到说在dir.h文件里,可我的dir.h文件就只有一句话啊:#include <io.h>
是不是版本不同,其函数所在文件也不同??
在tc中的确有dir.h,也有其函数,但Cygwin,gcc 中就没有吗?
谁能告诉我怎么办啊?
[/Quote]
想遍历目录不要用API,用
system("cmd /c dir /a-d /b /s c:\\mydir\\*.* >c:\\allfiles.txt");
//然后读文件c:\\allfiles.txt的内容
Linux下用system("ls ……");
这样才能方便、快速、稳定地得到按各种分量(比如大小、日期、文件名)正或反排序的文件全路径。
总之凡是能用Shell的内部命令或外部命令行工具加重定向功能得到的信息都不要用API去实现。
参考下面:
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
cheng20100915 2010-06-08
  • 打赏
  • 举报
回复
13楼的兄弟说的有道理,谢谢大家给我的回答,第一次使用csdn,我就每人都给2分,13楼的兄弟得分为剩余的分数,谢谢各位!
logiciel 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cheng20100915 的回复:]
没有你说的那个目录,我的目录是C:\cygwin\usr\include\mingw\dir.h
这文件中就一句话: #include <io.h>
就只有这句
[/Quote]

是这样的,实际使用的是C:\cygwin\usr\include\mingw\io.h.假定被编译文件是try.c,关键是要用以下命令:
gcc -mno-cygwin try.c

如果没有"-mno-cygwin"这个选项,就会出现"找不到dir.h"的提示.

以下是用上述命令通过编译并可正常运行的程序:

#include <stdio.h>
#include <dir.h>
int main()
{

struct _finddata_t dirment;
long handle;

handle = _findfirst("e:\\*.*",&dirment);
while (handle)
{
printf("%s\n", dirment.name);
if (_findnext(handle, &dirment)) break;
}

if (handle)
{
_findclose(handle);
}
return 0;

}
logiciel 2010-06-07
  • 打赏
  • 举报
回复
#include <sys/dir.h>
z569362161 2010-06-07
  • 打赏
  • 举报
回复
没看到图。

重新搜
budweiser 2010-06-07
  • 打赏
  • 举报
回复
你搜一下 不就知道有没有 dir.h 文件了
wade_2003 2010-06-07
  • 打赏
  • 举报
回复
那就重新找个文件,放到目录下吧
在google上去搜
cheng20100915 2010-06-07
  • 打赏
  • 举报
回复
桌面\dir1.bmp][/img]
cheng20100915 2010-06-07
  • 打赏
  • 举报
回复
晕.截图没发上去,我重发

33,311

社区成员

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

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