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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
boets
1 / 1 / 0
Регистрация: 23.10.2010
Сообщений: 24
#1

Дерево каталогов. Не могу найти ошибку. - C++

23.10.2010, 15:41. Просмотров 597. Ответов 7
Метки нет (Все метки)

Вот собственно написал программу, которая должна строить дерево каталогов. Но почему-то не строит, помогите найти ошибку, пожалуйста...
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
55
#include "stdafx.h"
#include <string.h> 
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <io.h>
#include <direct.h>
#include <iostream>
 
using namespace std;
 
int PrintDir(char *str,char *tab)
{
    char str1[255], str2[255], tab1[255];
    int res;
    
    _chdir(str);
    struct _finddata_t ff;
    intptr_t hFile;
 
 
    strcpy(str1, str);
    strcat(str1, "\\*.*");
    hFile=_findfirst(str,&ff);
    while (!hFile)
    {
        if (ff.attrib==_A_SUBDIR)
        {
            cout<<tab<<ff.name;
            strcpy(str2,str);
            strcat(str2,"\\");
            strcat(str2, ff.name);
            strcpy(tab1,tab);
            strcat(tab1,"\t");
            int res1=PrintDir(str2,tab1);
        }
        else
        {
            cout<<tab<<ff.name;
        }
        res=_findnext(hFile,&ff);
    }
    return 0;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    char tab[255];
    char str[255];
    cout<<"Vvedite put'";
    cin>>str;
    strcpy(tab,"\t");
    int res=PrintDir(str,tab);
    getch();
    return 0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2010, 15:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дерево каталогов. Не могу найти ошибку. (C++):

Бинарное дерево: не могу найти ошибку - C++
Никак не могу найти ошибку, помогите) #pragma once #ifndef _BINARYTREE_H_ #define _BINARYTREE_H_ struct node

Дерево каталогов - C++
помогите разработать программу , которая выводит дерево каталогов (с нужным количеством отступов, в зависимости от уровня вложенности...

Дерево каталогов - C++
Помогите решить задачу с деревом каталогов.Условие на картинке.Зараннее благодарен.

Просканировать дерево каталогов - C++
Доброго времени суток. Подскажите пожалуйста, как просканировать дерево каталогов на с++ и получить список всех файлов ?

Найти слова, повторяющиеся более одного раза, не могу найти ошибку - C++
#include &lt;iostream&gt; using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку) - C++
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

7
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
23.10.2010, 17:21 #2
hFile=_findfirst(str1,&ff);
while ( hFile != -1 )

Кроме того, нужно игнорировать случаи folder\.
0
boets
1 / 1 / 0
Регистрация: 23.10.2010
Сообщений: 24
23.10.2010, 18:11  [ТС] #3
Теперь ошибку выдаёт: Run-Time Check Failure #2 - Stack around the variable 'str1' was corrupted.
0
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
23.10.2010, 18:19 #4
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
Кроме того, нужно игнорировать случаи folder\.
_______
0
boets
1 / 1 / 0
Регистрация: 23.10.2010
Сообщений: 24
23.10.2010, 19:13  [ТС] #5
К сожалению мне не понятно, что это означает
0
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
23.10.2010, 19:38 #6
_findfirst возвращает среди всех директорий также и "\.". Эту директорию нужно игнорировать либо "не заходить", иначе получиться "folder\.\.\.\. ..." - и так до переполнения буфера.
Кроме того, используйте размер MAX_PATH для задания размера буфера под путь.
0
boets
1 / 1 / 0
Регистрация: 23.10.2010
Сообщений: 24
23.10.2010, 20:09  [ТС] #7
А не могли бы Вы сказать, как это в коде написать?
0
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
23.10.2010, 21:43 #8
boets, пробуйте сами.
1
23.10.2010, 21:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2010, 21:43
Привет! Вот еще темы с ответами:

Не могу найти ошибку - C++
Доброго времени суток. На днях написал программу, в логике программы вроде все правильно и подсчеты идут тоже корректные. Но до завершения...

Не могу найти ошибку - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; #define N = 3 using namespace std; void vvodMatr(int a, int n) int poiskMax (int a, int n) ...

Не могу найти ошибку( - C++
Когда ввожу матрицу 4 на 4 все норм, когда больше размерность то не переставляет блоки!! Помогите разобраться почему так? ...

Не могу найти ошибку - C++
{ char str={0}; char str2={0}; int k=0; int n=8; strcpy(str,this-&gt;Edit1-&gt;Text.c_str()); for(int i=0; str!='\0';i++) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru