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

Рекурсией найти файл с самым длинным именем. В чём ошибка? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать модуль для обработки одномерных массивов с помощью классов http://www.cyberforum.ru/cpp-beginners/thread890049.html
Создать модуль для обработки одномерных массивов с помощью классов. Добавлено через 21 час 5 минут Есть у кого какие мысли? =(
C++ Определить операторы как функции члена класса Добрый вечер! Ребята, помогите решить вот такую задачку: Необходимо определить операторы +, =, +=, -=, *=, , как функции члена класса. И определить функцию печати! http://www.cyberforum.ru/cpp-beginners/thread890044.html
C++ Найти ошибку в программе (считывание из текстового файла трех предложений и их вывод в обратном порядке)
задание было "написать программу которая считывает из текстового файла три предложения и выводит их в обраном порядке " #include <fstream> #include <iostream> #include <cstring> #include <ctype.h> #define LENGTH 20 using namespace std;
C++ Найти наибольший элемент главной диагонали квадратной матрицы
Двумерные массивы: 1)Найти наибольший элемент главной диагонали квадратной матрицы A=(ai,k) и вывести на печать всю строку, в которой он находится. (i=k) Спасибо большое. Tuki-Tuki, по правилам форума один вопрос - одна тема. Ваши задания вынесены в отдельные темы: http://www.cyberforum.ru/cpp-beginners/thread890337.html http://www.cyberforum.ru/cpp-beginners/thread890338.html...
C++ Найти количество положительных элементов,расположенных ниже побочной диагонали http://www.cyberforum.ru/cpp-beginners/thread890006.html
в матрице a найти количество положительных элементов,расположенных ниже побочной диагонали. (положительных элементов,расположенных ниже побочной диагонали..как найти!? через if !? если да то какое будет условие!?)
C++ Определить является ли заданная квадратная матрица симметричной относительно главной диагонали Разработать алгоритм и программу. Определить является ли заданная квадратная матрица A n-го порядка (2<=n<=10 – вводится пользователем) симметричной относительно главной диагонали. Элементы матрицы aij принимают значения в диапазоне . Заполнение матрицы осуществляется в соответствии с выбором пользователя: пользовательский ввод с клавиатуры; заполнение случайными числами в установленном... подробнее

Показать сообщение отдельно
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
04.06.2013, 00:43     Рекурсией найти файл с самым длинным именем. В чём ошибка?
Здравствуйте, программа должна найти файл с самым длинным именем и вывести полностью путь к этому файлу.
Ниже код, который после компиляции не выводит ничего, в чём ошибка?
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
#include <string.h>
#include <dirent.h>
#include <stdlib.h>
#include <stdio.h>
 
void PrintThebiggestFileLocation(char const*StartDir, char const*FileName);
 
int main (void)
{
    char fname[256]="1.txt", dirname[256]="./";
    PrintThebiggestFileLocation (dirname, fname);
    return 0;
}
 
void PrintThebiggestFileLocation (char const*StartDir, char const*FileName)
{
    DIR    *dp = opendir (StartDir);
    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, заносим его в max
 
            if (strcmp(FileName, ep->d_name)==1) // если d_name больше filename
            {
                char *max = strcpy (max, ep -> d_name);
                printf("%s\\%s\n", StartDir, max);
            }
 
        // Вывод пути
            char *newDir=(char*) malloc(sizeof(char)*(strlen(StartDir)+strlen(ep->d_name)+2));
            strcpy(newDir, StartDir);
            strcat(newDir, "\\");
            strcat(newDir, ep->d_name);
            PrintThebiggestFileLocation (newDir, FileName);
            free(newDir);
        }
        closedir (dp);
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru