Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Необходимо пояснение моих ошибок. https://www.cyberforum.ru/ cpp-beginners/ thread46537.html
Привет. Изучаю C++, только начал. Занимаюсь по книге "С++ для чайников" Дэвиса. Списал из примера программу, при компеляции выдаёт 5 ошибок. Прошу прокомментировать ошибки и дать правильные варианты....
C++ Перегрузка []
Здравствуйте все, снова. char operator(const unsigned short i )const ; char & operator(const unsigned short i ) ; Пишу MyStrClass str("test") cout<<str; str='b'; Как компилятор...
Эмуляция нажатия клавиш для SDL C++
Столкнулся с такой проблемой что на эмуляцию нажатия клавиш, SDL не реагирует. Точнее DOSBox. Пробовал 2 метода (WINAPI), оба не подходят. Походу к SDL надо особое обращение... Помогите плиз. Заранее...
C++ Почему не работает программа задача взята из учебника Дейтел Х. Как програмировать на С++ рис 6.1 вроде все набрал правильно но выдает ошибки вот код: #include "stdafx.h" #include <windows.h> #include <iostream> #include... https://www.cyberforum.ru/ cpp-beginners/ thread46447.html
C++ Игра Змейка (хвост змеи) https://www.cyberforum.ru/ cpp-beginners/ thread46438.html
Немогу сообразить каким способом пришить змее хвост.Подкиньте пару идей. PS:грубо,страшно написано но я пока по другому не умею ) #include<iostream> #include<windows.h> #include<conio.h> using...
C++ Ряды. Рекурсия
В общем,у меня задача написать рекурсивно вычисление выражения exp(0.56*x+ln(x^2)) с помощью рядов. Нужно получить число просуммированных членов ряда,обеспечивающих вычисление исходной функции с...
C++ Расчет кол-ва неотрицательных элементов массива
надо найти кол-во не отрицательных элементов массива он выводит какое-то число далеко заходящее за номера элементов #pragma hdrstop #include <iostream.h> #include <stdlib.h>...
C++ Ввод данных. Долго оправдываться что совсем начинающий я не буду). Поставил компилятор Dev-C++, решил проверить как работает - написал программку, которая должна считывать числа и складывать - он... https://www.cyberforum.ru/ cpp-beginners/ thread46325.html
C++ Ошибка при компиляции https://www.cyberforum.ru/ cpp-beginners/ thread46307.html
Подскажите пожалуйста из-за чего выходит эта ошибка при компиляции программы Unresolved external 'min(const int *, const int)' referenced from H:\MY...
C++ Функция flush() на C/C++ Уважаемые эксперты, обясните пожалуйста функцию flush() на C/C++... Буду очень благодарен... https://www.cyberforum.ru/ cpp-beginners/ thread46237.html
Заблокирован
Автор FAQ
10.08.2009, 12:40 0

Directory

10.08.2009, 12:40. Просмотров 2595. Ответов 16
Метки (Все метки)

Ответ

А это мой вариант решения на С++...
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#include <windows.h>
#include <shlobj.h>
#include <stdio.h>
 
LPTSTR SelectPath();//Выбор каталога
//Получения списка файлов
int GetFileList(LPTSTR sPath);
//Вычисление числа строк в файлах
int GetNumStrings(LPTSTR sPath);
 
WIN32_FIND_DATA * pFILEDATA = 
        (WIN32_FIND_DATA *)malloc(sizeof(WIN32_FIND_DATA));
 
void main()
{
    FILE * f = fopen("Result.txt","wb+");
    int FILE_COUNT,nStrings;
    char sPath[MAX_PATH];sPath[0] = '\0';
    if(f && strcpy(sPath,SelectPath()))
    {
        fprintf(f,"Directory selected : %s\r\n",sPath);
        printf("Directory selected : %s\r\n",sPath);
        FILE_COUNT = GetFileList(sPath);
        while(0 < FILE_COUNT)
        {
            if(FILE_ATTRIBUTE_DIRECTORY ^ pFILEDATA[FILE_COUNT-1].dwFileAttributes)
            {
            strcat(sPath,pFILEDATA[FILE_COUNT-1].cFileName);
            GetShortPathName((LPCTSTR)sPath,sPath,MAX_PATH);
            if(strstr(sPath,".TXT") != NULL)
            {
                nStrings = GetNumStrings(sPath);
                fprintf
                (
                    f,
                    "%s : %d\r\n",
                    pFILEDATA[FILE_COUNT-1].cFileName,
                    nStrings
                );
                //Для печати русских названий каталлогов
                CharToOem(
                    pFILEDATA[FILE_COUNT-1].cFileName,
                    pFILEDATA[FILE_COUNT-1].cFileName);
                printf
                (
                    "%s : %d\r\n",
                    pFILEDATA[FILE_COUNT-1].cFileName,
                    nStrings
                );
            }
            sPath[strlen(sPath) - strlen(strrchr(sPath,'\\')) + 1] = '\0';
            }
            FILE_COUNT--;
        }
        fclose(f);
        pFILEDATA = (WIN32_FIND_DATA *)
            realloc((void *)pFILEDATA,sizeof(WIN32_FIND_DATA));
    }
    printf("1 - Choose other Directory\r\n");
    scanf("%d",&FILE_COUNT);
    if(FILE_COUNT == 1)
        main();
}
 
LPTSTR SelectPath()
{
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {NULL, NULL, sPath,
       "Выберите директорию для обработки",
        BIF_DONTGOBELOWDOMAIN/*|BIF_BROWSEINCLUDEFILES*/,
        NULL,
        NULL,
        0
    };
    if((lpItemDList=SHBrowseForFolder(&bi)))
    {
        if(SHGetPathFromIDList(lpItemDList, sPath))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
    }
    return &sPath[0];
}
 
int GetFileList(LPTSTR sPath)
{
    int FILE_COUNT = 0;
    HANDLE hFile = FindFirstFile(strcat(sPath,"\\*.*"),&pFILEDATA[FILE_COUNT]);
    if (hFile!=INVALID_HANDLE_VALUE)
    {
        do
        {
            if
            (
            strlen(pFILEDATA[FILE_COUNT].cFileName) == 1
            &&
            strchr(pFILEDATA[FILE_COUNT].cFileName,'.') !=NULL
            )
            if(FindNextFile(hFile,&pFILEDATA[FILE_COUNT]) == 0)
                break;
            if
            (
            strlen(pFILEDATA[FILE_COUNT].cFileName) == 2   
            &&
            strstr(pFILEDATA[FILE_COUNT].cFileName,"..") !=NULL
            )
            if(FindNextFile(hFile,&pFILEDATA[FILE_COUNT]) == 0)
                break;
            FILE_COUNT++;
            pFILEDATA = (WIN32_FIND_DATA *)
                realloc((void *)pFILEDATA,sizeof(WIN32_FIND_DATA)*(FILE_COUNT + 1));
            if(pFILEDATA == NULL)
                break;
        }
        while(FindNextFile(hFile,&pFILEDATA[FILE_COUNT]));
        FindClose(hFile);
        FILE_COUNT--;
    }
    sPath[strlen(sPath) - strlen(strrchr(sPath,'\\')) + 1] = '\0';
    return FILE_COUNT;
}
 
int GetNumStrings(LPTSTR sPath)
{
    FILE * f;
    long fLen;
    char * str, * chBuf;
    int RetVal = 0;
    if((f = fopen(sPath,"rb+")))
    {
        fseek(f,0,SEEK_END);
        fLen = ftell(f);
        fseek(f,0,SEEK_SET);
        str = (char *)malloc(fLen);
        str[0] = '\0';
        fread(str,1,fLen,f);
        fclose(f);
        chBuf = strchr(str,'\n');
        while(chBuf)
        {
            RetVal++;
            chBuf++;
            chBuf = strchr(chBuf,'\n');
        }
        free(str);
    }
    else
        printf("Error while open %s\r\n",sPath);
    return RetVal;
}


Вернуться к обсуждению:
Directory
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2009, 12:40
Готовые ответы и решения:

No such file or directory
Здравствуйте. Столкнулся с проблемой, когда поменял название пользовательской папки с &quot;Кирилл&quot; на...

No such file in directory
Для компила проекта нужен один заголовочный файл. Я его поместил в папку с проектом, а он не...

No such file or directory
пытаюсь разобраться с visual C++, беру программу из книжки visual c++ для начинающих, делаю, как...

targetver.h: No such file or directory.
Подскажите пожалуйста что за трабл. во всех файлах компилятор Dev-C++ - выдаёт ошибку типа: ...

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