Часть II. Решения 221
Задача 245
// Вьшодит имена всех файлов программ
// предполагается, что первая строка
// файла - комментарий, название программы
#include
#include
#include
#include
// tdefine DEBUG // режим отладки
//в качестве параметра программе передается
// имя каталога, список файлов которого надо вывести
void main(int argc, char *argv[])
{
struct ffblk ffblk; // информация о файле
int done;
FILE *in; // файл программы
int n; // обработано файлов
char mask[MAXPATH];
char infile[MAXPATH];
char outfile[MAXPATH];
if (argc < 2)
{
puts("B командной строке не задан путь");
puts ("к обрабатываемым файлам");
printf ("Командная строка: %s pathXWn", argv[0]);
return;
}
printf("ХпПостроение списка файловХп");
// маска обрабатываемых файлов
strcpy(mask, argv[1]);
strcat(mask,"*.cpp");
// файл-список обработанных файлов
222 С/С-^-^ в задачах и примерах
strcpy(outfile, argv[l]);
strcat(outfile,"filelist.txt");
printf("Обработка: %s", mask);
n = 0;
done = findfirst(mask, &ffblk,0);
while (!done)
{ n++;
#ifdef DEBUG
printf("%s ", ffblk.ff_name);
#endif
strcpy(infile, argv[1]);
strcat(infile,ffblk.ff_name);
if ((in = fopen(infile, "rt")) i= NULL)
{
// читаем из файла первую строку
char st[80];
fgets(st, 80, in);
printf("%s %s", infile, st);
fclose(in);
}
done == findnext(&ffblk); // выбрать следующий файл
}
printf("ХпОбработано файлов: %d\n", n);
printf("Для завершения нажмите ");
getch();
}
Задача 247
// Рекурсивная функция "Факториал"
#include "stdio.h"
tinclude "conio.h"
unsigned int factor (iinsigned int k)
{
if ( к == 1 )
return(1);
else
return(k*factor(k-1));
}
Do'stlaringiz bilan baham: |