Форум программистов, компьютерный форум CyberForum.ru

Рекурсией найти и вывести самое длинное имя файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамические структуры. Написать программу с функциями, которая подсчитывает количество слов списка Р http://www.cyberforum.ru/cpp-beginners/thread884032.html
Написать программу с функциями, которая подсчитывает количество слов списка Р, которые: а)начинаются и заканчиваются одной и той же буквой; б)начинаются с той же буквы, на которую заканчивается предыдущее слово; в)совпадают с последним словом.
C++ Не поступают данные в поток (posix) #include <iostream> #include <sstream> #include <pthread.h> #include <vector> using namespace std; struct thread_data { int **a; int i; int n; http://www.cyberforum.ru/cpp-beginners/thread884031.html
C++ 3.1 Посмотрите, вроде быстрая сортировка, в любом случае, можете переделать(лучше под с++)?
#include <stdio.h> #include <conio.h> #include <clocale> #include <stdlib.h> #include <math.h> /* выделение памяти */ int *Allocate (int n) { int *a; a=(int *)calloc(n+1,sizeof(int *));
C++ Переписать код, используя конструкторы и деструкторы
Создать не менее двух конструкторов, в том числе - по умолчанию. 1.2. Создать конструктор копирования с динамическим выделением памяти, деструктор. 1.3. Добавить в программу инициализацию объектов с помощью различных конструкторов. 1.4. В конструкторе копирования применяйте указатель this, для динамического выделения памяти используйте new. 1.5. В деструкторе для освобождения памяти...
C++ Сортировка слиянием http://www.cyberforum.ru/cpp-beginners/thread884021.html
Нужно реализовать метод двухпутевой сортировки слиянием,для этого я отсортировал два массива по возрастанию,помогите теперь с написанием ф-цию слияния этих массивов в третий(по возрастанию)
C++ Ошибки (запись файла и расчёты) TForm1::angular() { int x,y; int s = Speed->Text.ToInt(); int a = Angle->Text.ToInt(); int g= 9.81; int t=0; for (int i=0; ; i++) { подробнее

Показать сообщение отдельно
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35

Рекурсией найти и вывести самое длинное имя файла - C++

30.05.2013, 11:26. Просмотров 744. Ответов 10
Метки (Все метки)

Здравствуйте, нужно с помощью рекурсии найти и вывести самое длинное имя файла, вывести с указанием пути. Как это можно сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
 
 
void PrintFileLocations(char const*StartDir, char const*FileName);
 
int main(int argc, char *argv[])
{
    char fname[256]="1.txt", dirname[256]="D:\\Home";
    PrintFileLocations(dirname, fname);
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
void PrintFileLocations(char const*StartDir, char const*FileName)
{
    DIR    *dp = opendir (StartDir);
// Граничное условие: если StartDir это не папка,
// то нет в ней файлов с именем FileName
    if (dp == NULL)
    {
        return ;
    }
    else
    {
        struct dirent *ep;
        while (ep = readdir (dp))
        {
            if( strcmp(ep->d_name, "." ) ==0 || strcmp(ep->d_name, ".." ) ==0)
                continue;
        // Проверяем каждый элемент из папки и , если его имя
        // совпало с FileName - выводим путь и увеличиваем счётчик
            if(strcmp(FileName, ep->d_name)==0)
            {
                printf("%s\\%s\n", StartDir, ep->d_name);
            }
        // Рекурсивно ищем, предполагая, что данный элемент является папкой
            char *newDir=(char*)
                malloc(sizeof(char)*(strlen(StartDir)+strlen(ep->d_name)+2));
            strcpy(newDir, StartDir);
            strcat(newDir, "\\");
            strcat(newDir, ep->d_name);
            PrintFileLocations(newDir, FileName);
            free(newDir);
        }
        closedir (dp);
    }
}
Добавлено через 15 часов 49 минут
вверх
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru