请教关于标准C中findfirst()函数的用法!谢谢

本文讨论了findfirst()函数在Turbo C中的使用方法及其参数含义,并提供了简单的示例代码。该函数用于搜索磁盘目录并获取匹配模式的第一个文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.9php.com/FAQ/cxsjl/c/2008/02/8213744111969.html

请教关于标准C中findfirst()函数的用法!谢谢

[2008-2-12 18:21:37] [来源: 百家电脑学院] [我要投稿]

2004-10-26 11:14 mimosayuan
请教关于标准C中findfirst()函数的用法!谢谢

请教标准C中findfirst()用法,这个函数里的参数都代表什么意义?能帮忙解释一下吗?谢谢!如果有具体实例更加感谢!

2004-10-26 11:22 FH
请教关于标准C中findfirst()函数的用法!谢谢

标准C里没找着,帮不上

2004-10-26 11:29 mimosayuan
请教关于标准C中findfirst()函数的用法!谢谢

我找到了,是这样的
函数名: findfirst, findnext 
功  能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件 
用  法: int findfirst(char *pathname, struct ffblk *ffblk, int attrib); 
int findnext(struct ffblk *ffblk); 

我想要做的是找到匹配*.tmp的文件,然后把匹配的文件删除,但是我不知道具体该怎么用,还有删除文件应该用什么方法呢?能帮忙看一下吗?谢谢了!

2004-10-26 12:28 aero
请教关于标准C中findfirst()函数的用法!谢谢

这个不是标准C函数吧?

2004-10-26 13:09 FH
请教关于标准C中findfirst()函数的用法!谢谢

你还是用ftw吧,回调方式的,这个省事

2008-2-6 11:26 bheric
原帖由 mimosayuan 于 2004-10-26 11:29 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=2882364&ptid=432048][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
我找到了,是这样的
函数名: findfirst, findnext 
功  能: 搜索磁盘目录; 取得下一个匹配的findfirst模式的文件 
用  法: int findfirst(char *pathname, struct ffblk *ffblk, int attrib); 
int findne ... [/quote]

findfirst()和findnext()这两个函数是搭配使用的
path是文件路径
ffblk为指定的保存文件信息的一个结构,定义如下: 
    ┏━━━━━━━━━━━━━━━━━━┓ 
    ┃struct ffblk                        ┃ 
    ┃{                                   ┃ 
    ┃ char ff_reserved[21]; /*DOS保留字*/┃ 
    ┃ char ff_attrib;       /*文件属性*/ ┃ 
    ┃ int  ff_ftime;        /*文件时间*/ ┃ 
    ┃ int  ff_fdate;        /*文件日期*/ ┃ 
    ┃ long ff_fsize;        /*文件长度*/ ┃ 
    ┃ char ff_name[13];     /*文件名*/   ┃ 
    ┃}                                   ┃ 
    ┗━━━━━━━━━━━━━━━━━━┛ 
     attrib为文件属性,由以下字符代表 
    ┏━━━━━━━━━┳━━━━━━━━┓ 
    ┃FA_RDONLY 只读文件┃FA_LABEL  卷标号┃ 
    ┃FA_HIDDEN 隐藏文件┃FA_DIREC  目录  ┃ 
    ┃FA_SYSTEM 系统文件┃FA_ARCH   档案  ┃ 
    ┗━━━━━━━━━┻━━━━━━━━┛ 
:em03: 
int main(void)
{
struct ffblk ff;
int done;
done=findfirst("*.bmp",&ff,0);
while(!done)
{
done=findnext(&ff);
printf("%s",ff.ff_name);
}
return 0;
}
2008-2-6 13:05 zszyj
[quote]原帖由  mimosayuan 于 2004-10-26 11:14 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=2882284&ptid=432048][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
请教标准C中findfirst()用法,这个函数里的参数都代表什么意义?能帮忙解释一下吗?谢谢!如果有具体实例更加感谢! [/quote]
这不是标准C的函数, 是win sdk的函数, 作用是搜索目录下的第一个文件,要和FindNext配合使用. 
UNIX下对应的函数是glob.

2008-2-6 13:30 langue
[quote]原帖由  zszyj 于 2008-2-6 13:05 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7946676&ptid=432048][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]

这不是标准C的函数, 是win sdk的函数, 作用是搜索目录下的第一个文件,要和FindNext配合使用. 
UNIX下对应的函数是glob. [/quote]

请注意大小写 :mrgreen:
对于 Win32,如果不加指定,MSVC 是区分 FindFirst 和 findfirst 的
这 findfirst() findnext() 其实是 Turbo C 里面的函数 :em17:

2008-2-6 13:53 zszyj
[quote]原帖由  langue 于 2008-2-6 13:30 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7946701&ptid=432048][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]


请注意大小写 :mrgreen:
对于 Win32,如果不加指定,MSVC 是区分 FindFirst 和 findfirst 的
这 findfirst() findnext() 其实是 Turbo C 里面的函数 :em17:


呵呵,怪不得,我正奇怪呢,正确的写法应该是FindFirst和FindNext,何来的小写。原来是turbo C的函数。
<think>嗯,用户想了解Julia中findall函数的使用方法,我需要先回忆一下这个函数的具体功能和语法结构。findall在Julia中通常用于查找符合特定条件的元素索引,可能在数组或字符串中使用。首先,我应该确认它的基本用法,比如如何根据条件筛选元素的位置。 然后,我需要考虑用户可能的应用场景,比如处理数组、字符串或者正则表达式匹配的结果。用户可能想知道如何在不同数据结构中使用findall,比如向量、矩阵,或者结合正则表达式查找匹配的位置。例如,在字符串中查找某个子串的所有出现位置,或者在数组中找出满足某个不等式的元素索引。接下来,我应该检查是否有相关的示例代码,这能帮助用户更好地理解。比如,使用findall(x->x >2,[1,3,4])会返回索引2和3。另外,在处理字符串时,结合正则表达式,比如用findall(r"\d+","a1b23")会得到所有数字的起始和结束位置。还需要注意findall返回的是元素的索引,而不是具体的值。用户可能需要区分findall和filter函数的不同之处,前者返回索引,后者返回值。此外,在矩阵或多维数组中的使用,可能需要用到CartesianIndex来处理多维索引的情况。 另外,用户可能关心性能问题,比如findall在处理大型数据集时的效率。不过根据引用[4]提到的Julia的高效性能,可以指出findall在这方面表现良好,尤其是在结合DataFrame等库处理数据时。 还需要考虑用户可能的误区,比如参数顺序是否正确,或者条件表达式的写法是否符合Julia语法。例如,findall(r"\d",text)是否正确使用正则表达式,或者条件函数是否返回布尔值。最后,应该提供一些常见问题的解答,比如如何处理没有找到匹配的情况,或者如何将索引转换为实际的值。同时,引用相关的参考资料,如引用[3]中的map函数示例,可能与数组处理相关,但需要明确区分不同函数的用途。</think>### Julia中findall函数使用详解 `findall`函数用于返回满足条件的元素索引,支持数组、字符串和正则表达式匹配。以下是具体使用方法: --- #### 一、基础语法 ```julia findall(f, A) # 返回A中满足条件f(x)的元素索引 findall(pattern, string) # 返回字符串中匹配正则表达式的所有区间 ``` --- #### 二、数组应用示例 1. **数值筛选** ```julia arr = [1, 3, 5, 2, 4] indices = findall(x -> x > 2, arr) # 返回[2,3,5],即元素3,5,4的索引 ``` 2. **矩阵操作** ```julia mat = [1 0; 3 4] indices = findall(x -> x % 2 == 0, mat) # 返回CartesianIndex(1,2)和CartesianIndex(2,2) ``` --- #### 三、字符串与正则表达式 1. **查找子串位置** ```julia text = "Julia is fast!" indices = findall("a", text) # 返回[4](第一个'a'的位置) ``` 2. **正则表达式匹配** ```julia matches = findall(r"\d+", "a1b23") # 返回[2:2, 4:5],即"1"和"23"的位置区间 ``` --- #### 四、高级用法 - **结合BitArray筛选** ```julia mask = [true, false, true, false] findall(mask) # 返回[1,3] ``` - **多维索引转换** ```julia using CartesianIndex mat_indices = findall(x -> x > 2, mat) linear_indices = LinearIndices(mat)[mat_indices] # 转换为线性索引 ``` --- #### 五、注意事项 1. 若未找到匹配,返回空数组`[]` 2. 正则表达式需用`r"..."`定义,如`r"\d"`匹配数字[^5] 3. 性能优化:对大型数组优先使用`BitArray`生成掩码 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值