Понимание _findfirst и _findnext

Необходимо понимать, как _findfirst и _findnext работают с входными данными шаблона.

Я использовал следующий код для анализа их функциональности, но результаты меня смущают.

    intptr_t handle;
struct _finddata_t fblock;
int count = 1;
char pattern[] = "*";
printf("Pattern is %s",pattern);
if((handle = _findfirst(pattern,&fblock))>0){
printf("\nfound : %d :: ",count++);
printf("%s",fblock.name);
while(_findnext(handle,&fblock) == 0){
printf("\nfound : %d :: ",count++);
printf("%s",fblock.name);
}
}
printf("\ncompleted");
//getch();

Результаты, достижения :
У меня есть четыре файла в папке.

1.ReadMe.txt
2.ReadMe1.txt
3.ReadMe1.txt_bck
4.ReadMe1.txtbck

Сейчас,

Enter pattern :*.tx
Pattern is *.tx
completed

Хорошо. Там нет файлов с Ext TX

Enter pattern :*.txt_
Pattern is *.txt_
completed

Хорошо. Также нет файлов с ext txt_

Enter pattern :*.txt
Pattern is *.txt
found : 1 :: ReadMe.txt
found : 2 :: ReadMe1.txt
found : 3 :: ReadMe1.txtbck
found : 4 :: ReadMe1.txt_bck
completed

??? Я спросил только для Ext TXT. Почему отображается txt_bck?

Enter pattern :*.txt*
Pattern is *.txt*
found : 1 :: ReadMe.txt
found : 2 :: ReadMe1.txt
found : 3 :: ReadMe1.txtbck
found : 4 :: ReadMe1.txt_bck
completed

Какова разница между этим и предыдущим?

Enter pattern :ReadMe?.txt
Pattern is ReadMe?.txt
found : 1 :: ReadMe.txt
found : 2 :: ReadMe1.txt
completed

Ожидаемое «?» подстановочный знак будет соответствовать ровно одному символу, но также соответствует 0.

Enter pattern :ReadMe*.txt
Pattern is ReadMe*.txt
found : 1 :: ReadMe.txt
found : 2 :: ReadMe1.txt
found : 3 :: ReadMe1.txtbck
found : 4 :: ReadMe1.txt_bck
completed

_

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]