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

Проблема с opendir - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ANSI и UNICODE http://www.cyberforum.ru/cpp-beginners/thread340080.html
#include <iostream> #include <windows.h> using namespace std; int main(){ TCHAR j; return 0;
C++ Вывод int Добрый день, подскажите, пожалуйста, есть ли возможность вывода числа типа int в формате n знаков ДО запятой, т.е если , например, при n = 2 число 40 так и выводится 40, а число 4 будет выводится - 04 ? http://www.cyberforum.ru/cpp-beginners/thread340071.html
Парсинг C++
Привет всем вообщем нужно удачно спарсить данные (gold, money, fuel, lvl, model) вид ответа хоть и xml но данные к сожалению находятся не в <> </> сам ответ от сервера <init fuel_gifts="42901258,43261771,108608536,71020171,131709065,34245643,20195695,76560979" can_send_fuel="1"> <user default_car="20472775" tank="0" races_lost="349" gold="10" money="60246" races_won="438"...
C++ Матрица
Добрый вечер, вопрос в следующем, есть матрица, в которую можно записать три числа. Как сделать, чтобы при введение этих трех чисел создавался файл, в котором благополучно лежали эти числа. Файл не должен иметь расширение txt
C++ Возможно ли это на с++? http://www.cyberforum.ru/cpp-beginners/thread339905.html
Допустим есть класс class MyBool{ int data; //Читаем бит номер num bool GetVal(num){return data&(1<<num);} //Записываем в бит номер num значение val void SetVal(num,val){val?data|=(1<<num):data&=~(1<<num);} }; т.е. определены побитовое хранение булевых значений, их чтение и запись. А теперь вопрос: Существует ли способ определить операторы так, чтобы работал следующий код:
C++ Крестики-нолики #include <iostream> #include <cstring> using namespace std; void show_cells(); void make_move(int num); void result(); char cells = {'-', '-', '-', '-', '-', '-', '-', '-', '-'}; char PlayerName1, подробнее

Показать сообщение отдельно
Hairesis
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 5

Проблема с opendir - C++

08.08.2011, 12:03. Просмотров 1801. Ответов 10
Метки (Все метки)

Привет всем кто зашёл в темку.
Столкнулся с необходимостью рекурсивно пройти по всем директориям в директории.

В массив "с" пишу директорию. Как раз она открывается отлично. Но когда передаю в opendir имя следующей директории с помощью dir->d_name, получаю результат NULL.

Код собственно вот:

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
#include <cstdio>
#include <iostream>
#include <dirent.h> 
#include <string>
#include <unistd.h>
#include <sys/types.h> 
#include <sys/param.h> 
#include <sys/stat.h> 
 
using namespace std;
 
void checkDirectory(char c[]);
 
int main()
{
  cout<<"Hello"<<endl;
  char c[]=".";
  checkDirectory(c);
}
 
void checkDirectory(char c[])
{
  DIR *d;
  struct dirent *dir;
  if((d = opendir(c))==NULL)
  {
   cout<<"Error in open dir: "<<c<<endl;
   return;
  }
 
  while((dir = readdir(d))!=NULL)
  {
    if( strcmp( dir->d_name, "." ) == 0 || 
        strcmp( dir->d_name, ".." ) == 0 ) 
    {
      continue;
    }
    
    if(strstr(".",dir->d_name)==NULL)
    {
      cout<<"Find new directory: "<<dir->d_name<<endl;
      chdir(dir->d_name);
      checkDirectory(dir->d_name);
    }
  }
  closedir(d);
}
Подскажите в чём может быть трабла.

Заранее спасибо!

Добавлено через 30 минут
Попробовал сделать через стринги. Тажа самая хрень.

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
#include <cstdio>
#include <iostream>
#include <dirent.h> 
#include <string>
#include <unistd.h>
#include <sys/types.h> 
#include <sys/param.h> 
#include <sys/stat.h> 
 
using namespace std;
 
void checkDirectory(string c);
 
int main()
{
  cout<<"Hello"<<endl;
  string dirStr=string("demos");
  checkDirectory(dirStr);
}
 
void checkDirectory(string c)
{
  DIR *d;
  struct dirent *dir;
  if((d = opendir(c.c_str()))==NULL)
  {
   cout<<"Error in open dir: "<<c<<endl;
   return;
  }
 
  while((dir = readdir(d))!=NULL)
  {
    if( strcmp( dir->d_name, "." ) == 0 || 
        strcmp( dir->d_name, ".." ) == 0 ) 
    {
      continue;
    }
    
    if(strstr(".",dir->d_name)==NULL)
    {
      cout<<"Find new directory: "<<dir->d_name<<endl;
      chdir(dir->d_name);
      checkDirectory(string(dir->d_name));
    }
  }
  closedir(d);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru