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

Указатели и разадресация - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Осуществить поиск комбинации с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread825397.html
Осуществить точный поиск заданной с клавиатуры произвольной последовательности символов (строки) в файле Input.txt. Вывести на экран и в файл Output.txt искомую строку, количество совпадений, а также номер строки и столбца (позиции символа в строке), в которых находится первый символ совпадения. Программа должна обеспечивать многократный поиск, т.е. по окончании процесса поиска повторно...
C++ неразрешенный внешний символ В общем, проблема: подключаю библиотеку tbb (параллельные вычисления) и при компиляции выдается ошибка: " Ошибка 4 error LNK2001: неразрешенный внешний символ ""public: class tbb::task & __thiscall tbb::internal::allocate_child_proxy::allocate(unsigned int)const " (?allocate@allocate_child_proxy@internal@tbb@@QBEAAVtask@3@I@Z)" d:\documents and settings\Мама\мои документы\visual studio... http://www.cyberforum.ru/cpp-beginners/thread825371.html
Объясните пожалуйста C++
Разбор исходного текста на языке программирования. Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю. Объясните что это значит? Пример можете показать?
C++ Вывод в произвольную позицию консоли
Всем доброго времени суток. Скажите, пожалуйста, можно ли средствами стандартной библиотеки C++ выводить текст в произвольную точку консоли? Добавлено через 4 минуты Т.е. допустим, программа, копирующая файлы в консоли и выводящая в строке процент выполнения операции и "прогресс-бар". Как я понял, в принципе этом можно сделать и обычным cout'ом с помощью '\b'. Но это довольно неуклюжий...
C++ Бинарное дерево. Игра "Угадай животное" http://www.cyberforum.ru/cpp-beginners/thread825355.html
Дорогие и уважаемые умы!) Такая проблема у меня возникла. Написал код для создания игры, использующей структуру "дерево", но маленькая трабла - запускается лишь два раза, на третий раз - пустой экран. Подскажите ошибку, пожалуйста. Заранее благодарен! #include<iostream.h> #include<conio.h> #include<stdlib.h> #include <fstream.h> class Node { private:
C++ Для тех кто имеет опыт по ОПП Посмотрите на код и выскажете свое мнение, соответствует ли он философии ОПП, если нет то скажите в чем ошибки, как лучше и т.д. . Это двухнаправленный список с возможностью одновременного хранения целого, вещественного и строки. item.h #include <iostream> //Класс представляющий тип хранимого данного class Item { private: int whole; подробнее

Показать сообщение отдельно
RRus
0 / 0 / 0
Регистрация: 02.11.2012
Сообщений: 13
02.04.2013, 19:59  [ТС]     Указатели и разадресация
Код чутка переделал, теперь вот что получается:
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
#include "stdafx.h"
#include "conio.h"
#include "stdlib.h"
#include "io.h"
#include "time.h"
#include "cstringt.h"
#include "iostream"
#include "iomanip"
#include <fstream>
#include <string>
#define _CRT_SECURE_NO_WARNINGS
 
    struct list
   {
     struct _finddata_t *findD;
     list *next;
   };
 
 
// Ищет файлы на диске
bool FindFile(char *Path, char *Mask);
// Выводит найденную информацию на экран монитора и в файл
void PrintData(char *NameFile, struct _finddata_t *findData);
// Выводитна экрнан меню
int Menu(void);
 
// Прототипы функций сравнения
int CompareNameFile( const void *arg1, const void *arg2 );
int CompareSizeFile( const void *arg1, const void *arg2 );
int CompareDateFile( const void *arg1, const void *arg2 );
 
using namespace std;
 _CRT_SECURE_NO_WARNINGS;
// Глобальные переменные
int g_SumFile = 0;     // Количество найденных файлов
 list *ph = NULL;
 
void Add(struct _finddata_t *findData)
 {  
    list *q = new list;
    q->next=ph;
    q->findD= findData;
    ph=q;
    }
  
int _tmain(int argc, _TCHAR* argv[])
{
   int i;
   char File[] = "File.txt";
   char FileSortName[] = "FileSortName.txt";
   char FileSortSize[] = "FileSortSize.txt";
   char FileSortDate[] = "FileSortDate.txt";
   struct _finddata_t *findData;
   struct _finddata_t *find;
   char Path[] = "G:\\" ;
   char Mask[] = "*.torrent";
   setlocale(LC_ALL, "Russian_Russia.1251");
 
   // Код ввода данных
 
g_SumFile = 0; // Обнуляем счетчик найденных файлов
FindFile(Path, Mask); //Рекурсивный поиск файлов на диске
 
//Динамическое выделение памяти для массива
find = new _finddata_t[g_SumFile];
list *q;
q=ph;
i=0;
 while (q!=NULL) 
 {   
              strcpy(find[i].name, q->findD->name);
              find[i].size=q->findD->size;
              find[i].time_create=q->findD->time_create;
    /* find[i]=q->findD;*/
            q=q->next;
            i++;
            }
while (ph!=NULL) {
q = ph;
ph = ph->next ;
delete q;
}
 
 
PrintData(File, find);
_getch();
 
do
{
    //Вывод на экран меню
    int NumbMenu = Menu();
    switch(NumbMenu)
    {
    case 0:  //заканчиваем работу
         delete[] find;
         return 0;
    case 1:
         qsort((void*)find, g_SumFile,
             sizeof(find[0]), CompareNameFile);
         // Выводим найденную информацию на экран и в файл
         PrintData(FileSortName, find);
         _getch();
         break;
    case 2:
         qsort((void*)find, g_SumFile,
              sizeof(find[0]), CompareSizeFile);
         // Выводим найденную информацию на экран и в файл
         PrintData(FileSortSize, find);
         _getch();
         break;
    case 3:
         qsort((void*)find, g_SumFile,
              sizeof(find[0]), CompareDateFile);
         // Выводим найденную информацию на экран и в файл 
         PrintData(FileSortDate, find);
         _getch();
         break;
     }
   } while(1);
   _getch();
   delete[] findData;
   return 0;
 }
//////////////////////////////////////////////////////////////////
// Функция сравнения по имени файлов
int CompareNameFile( const void *a1, const void *a2 )
{
struct _finddata_t *item1=(struct _finddata_t*)a1;
    struct _finddata_t *item2=(struct _finddata_t*)a2;
 
        return (_stricmp(item1->name,item2->name));
}
int CompareDateFile( const void *a1, const void *a2 )
{
struct _finddata_t *item1=(struct _finddata_t*)a1;
    struct _finddata_t *item2=(struct _finddata_t*)a2;
 
    if (item1->time_create<item2->time_create) return -1;
    else if (item1->time_create>item2->time_create) return 1;
    return 0;
}
int CompareSizeFile( const void *a1, const void *a2 )
{
struct _finddata_t *item1=(struct _finddata_t*)a1;
    struct _finddata_t *item2=(struct _finddata_t*)a2;
 
    if (item1->size<item2->size) return -1;
    else if (item1->size>item2->size) return 1;
    return 0;
}        
         
///////////////////////////////////////////////////////////////////
// Выыодит меню на экран
int Menu(void)
{
    int n;
    cout<<"Команды меню: "<<endl;
    cout<<"0 - завершение работы."<<endl;
    cout<<"1 - сортировка найденных файлов по имени."<<endl;
    cout<<"2 - сортировка найденных файлов по размеру."<<endl;
    cout<<"3 - сортировка найденных файлов по дате создания."<<endl;
    cout<<"\nВведите команду меню: ";
    cin>>n;
    return n;
 
}
 
 
////////////////////////////////////////////////////////////////////
// Рекурсивный поиск файлов на диске
bool FindFile(char *Path, char *Mask)
{
int i=0;
    struct _finddata_t findData;
    intptr_t hFile;
    char FullName1[_MAX_PATH];
    strcpy_s(FullName1,_MAX_PATH-1,Path);
    strcat_s(FullName1,_MAX_PATH-1,"*.*");
    if ( (hFile=_findfirst(FullName1,&findData))!=-1L)
        do
        {
            if (findData.attrib==_A_SUBDIR &&
                (_strcmpi(findData.name,".") &&
                _strcmpi(findData.name,"..")))
            {
                char NextPatch[_MAX_PATH];
                strcpy_s(NextPatch,_MAX_PATH-1,Path);
                strcat_s(NextPatch,_MAX_PATH-1,findData.name);
                strcat_s(NextPatch,_MAX_PATH-1,"\\");
                FindFile(NextPatch,Mask);
            }
        }while(_findnext(hFile,&findData)==0);
        char FullName2[_MAX_PATH];
        strcpy_s(FullName2,_MAX_PATH-1,Path);
        strcat_s(FullName2,_MAX_PATH-1,"\\");
        strcat_s(FullName2,_MAX_PATH-1,Mask);
        
        if ((hFile=_findfirst(FullName2,&findData))==-1L)
            return true;
        do
        {
            g_SumFile++;
                                       // Список пустой
        
            Add(&findData);
            //while (i!=g_SumFile) {
            /*list *q = new list;
            q->findD=&findData;
            q=q->next;
            ph=q;
            */
 
            //i++
            
        } while(_findnext(hFile,&findData)==0);
        _findclose(hFile);
    return true;
}
 
 
void PrintData(char *NameFile, struct _finddata_t *find)
{
ofstream file(NameFile);
 
int i=0;
  while (i!=g_SumFile)
   {
       cout<<"Файл : "<<find[i].name<<" "<<"Размер файла :"<<find[i].size<<" Датасоздания :"<<find[i].time_create<<endl;
       file<<"Файл : "<<find[i].name<<" "<<"Размер файла :"<<find[i].size<<" Датасоздания :"<<find[i].time_create<<endl;
       i++;
       
   }
}
Миниатюры
Указатели и разадресация  
 
Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru