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

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

Войти
Регистрация
Восстановить пароль
 
asql
74 / 75 / 25
Регистрация: 03.06.2014
Сообщений: 446
#1

Не могу выполнить поиск - C++

03.06.2014, 14:55. Просмотров 219. Ответов 4
Метки нет (Все метки)

Не давно начал изучать С++(до этого изучал только веб), и можно сказать с уверенностью что он запутаннее и сложнее чем ПХП или яваскрипт. В общем, решил попрактиковаться и сделать поиск, но функция отвечающая за поиск файлов "непонятно" себя ведет!


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
#include <windows.h>
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
 
 
  void findDirect(string direct){
    string Path=direct, rmmp;   
            
            WIN32_FIND_DATA FindFileData;
            HANDLE hf;
            rmmp=Path+"*";
             hf=FindFirstFile(rmmp.c_str(), &FindFileData);
             if (hf!=INVALID_HANDLE_VALUE)
        {
                do
                { 
                direct  += FindFileData.cFileName; 
 
                 
                  if((FindFileData.dwFileAttributes  & FILE_ATTRIBUTE_HIDDEN)==0){ 
            cout << "Path file:  "<<direct<<endl;            
            findDirect(direct+"\\");
 
        }
            
                direct=Path;  
                
 
                }
 
                while (FindNextFile(hf,&FindFileData)!=0);
 
                FindClose(hf);
        }
    cout<<"________________________"<<endl;
 
    
 }
 
 
int main()
{
 
 
 
 
 DWORD Disks = GetLogicalDrives();
char temp[2];
stringstream ddfir;
 
    for(int dc = 0; dc < 32; dc++)
    {
        if (Disks & (1<<dc))
        {           
            temp[1]=0;
            temp[0]='A'+dc;
            ddfir<<temp;
            cout<<ddfir.str()+":\\"<<endl;
            findDirect(ddfir.str()+":\\");
            ddfir.str("");
            Sleep(1000);
             
             
        }
    }
system("pause");
return 0;
}
какое то "непонятное" зацикливание идет у нее

Добавлено через 5 минут
Цитата Сообщение от asql Посмотреть сообщение
Disks & (1<<dc)
и что это за символ & и <<
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 14:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу выполнить поиск (C++):

Поиск символа не могу переделать под поиск сочетания символов - C++
Есть код программы на поиск и замену по одному символу.Не могу понять, как сделать код на поиск сочетания символов. Чтобы найдя в введённой...

Не могу выполнить задание - C++
очень нужна помощь с заданием.... Не могу сделать... Ввести с клавиатуры числа x, E . Последовательность a(1),a(2)....a(n)...

Не могу выполнить задание на сортировку - C++
В общем, само задание такое: Упорядочить по возрастанию отдельно элеметы, стоящие на четных местах и элементы, стоящие на нечетных местах....

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

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

Выполнить поиск и сортировку - C++
Всем Привет! Очень нужна Ваша помощь. У меня в программе сделана база данных. там делается все что надо, добавление удаление, поиск и т. д....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
03.06.2014, 15:16 #2
Цитата Сообщение от asql Посмотреть сообщение
и что это за символ & и <<
& оператор И
<< оператор сдвига
Disks & (1<<dc) выделяет бит номер dc в переменной Disks
1<<dc возвращает число 100..{dc штук}..0 (двоич.)

оператор & "накладывает" оператором "И" одно число на другое
то есть побитово производит с каждым битом левого и правого операнда операцию "И"
оператор "И", как известно, возвращает 1 только, если оба его операнда единицы в соответствующей позиции
а так как правый операнд (как показано выше) имеет вид 000100...0 .
То вне зависимости от значения левого операнда Disks выражение вернёт значение вида
000x00...0 , где x равен 1 только если соответствующий бит Disks тоже равен 1, иначе 0

Итого: выражение if (Disks & (1<<dc)) выполнит условие только если бит номер dc переменной Disks равен 1
asql
74 / 75 / 25
Регистрация: 03.06.2014
Сообщений: 446
04.06.2014, 09:17  [ТС] #3
могу ли я больше узнать где то об этих спец символах?
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
04.06.2014, 10:20 #4
asql, что же в них такого "специального"? Достаточно просто учить язык не обрывками на уроках в школе, а последовательно и с толком, читать книги, не торопясь, не пытаясь выучить язык за неделю! Тогда никакие "спецсимволы" не станут для тебя сюрпризом!
asql
74 / 75 / 25
Регистрация: 03.06.2014
Сообщений: 446
05.06.2014, 09:34  [ТС] #5
ИМХО лучшее изучение - практика

Добавлено через 22 часа 18 минут
http://ru.wikipedia.org/wiki/Операторы_в_C_и_C++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 09:34
Привет! Вот еще темы с ответами:

Не могу понять условие, следовательно, и выполнить задание - C++
Дана следующая задача: Даны целое число k (1&lt;=k&lt;=180 ) и последовательность цифр 101102103…149150, в которой выписаны подряд все...

Выполнить поиск по букве и вывести фамилию автора - C++
Условие: выполнить поиск по букве и вывести фамилию автора #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; struct record { ...

Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов - C++
Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов.Помогите плиз с решением задачи

Выполнить поиск указанных в массиве элементов и подсчитать количество сравнений - C++
Выполнить поиск указанных в массиве элементов и подсчитать количество сравнений(Это общее задание для всех вариантов) Элемент равный...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.06.2014, 09:34
Ответ Создать тему
Опции темы

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