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

Directory - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Необходимо пояснение моих ошибок. http://www.cyberforum.ru/cpp-beginners/thread46537.html
Привет. Изучаю C++, только начал. Занимаюсь по книге "С++ для чайников" Дэвиса. Списал из примера программу, при компеляции выдаёт 5 ошибок. Прошу прокомментировать ошибки и дать правильные варианты. учитывая мой уровень, = 0, буду благодарен за развёрнутые комментарии с кодами (если понадобится). Текст ошибок выделил красным. //Bit Test - инициируется две переменные и // выводятся...
C++ Перегрузка [] Здравствуйте все, снова. char operator(const unsigned short i )const ; char & operator(const unsigned short i ) ; Пишу MyStrClass str("test") cout<<str; str='b'; Как компилятор определяет когда и какой оператор использовать? http://www.cyberforum.ru/cpp-beginners/thread46504.html
Эмуляция нажатия клавиш для SDL C++
Столкнулся с такой проблемой что на эмуляцию нажатия клавиш, SDL не реагирует. Точнее DOSBox. Пробовал 2 метода (WINAPI), оба не подходят. Походу к SDL надо особое обращение... Помогите плиз. Заранее благодарен. :)
Почему не работает программа C++
задача взята из учебника Дейтел Х. Как програмировать на С++ рис 6.1 вроде все набрал правильно но выдает ошибки вот код: #include "stdafx.h" #include <windows.h> #include <iostream> #include <iomanip> #include <conio.h> using namespace std;
C++ Игра Змейка (хвост змеи) http://www.cyberforum.ru/cpp-beginners/thread46438.html
Немогу сообразить каким способом пришить змее хвост.Подкиньте пару идей. PS:грубо,страшно написано но я пока по другому не умею ) #include<iostream> #include<windows.h> #include<conio.h> using namespace std; const int Y = 20, X = 50; enum DIR{UP, DOWN, LEFT, RIGHT}; void main()
C++ Ряды. Рекурсия В общем,у меня задача написать рекурсивно вычисление выражения exp(0.56*x+ln(x^2)) с помощью рядов. Нужно получить число просуммированных членов ряда,обеспечивающих вычисление исходной функции с задаваемой абсолютной или относительной степенями точности. Формула у нас такая: http://myphoto.nnov.ru/thumb/1eecf3be7183d6d6a949afdc0ca747c1.jpg. А рекурсия вот откуда берется: вычислить обязательно... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
10.08.2009, 12:40     Directory
А это мой вариант решения на С++...
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;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru