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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Dreamlex
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 7
#1

Вывести на экран список файлов и каталогов в текущей директории - C++

01.04.2014, 21:34. Просмотров 1257. Ответов 1
Метки нет (Все метки)

Помогите написать программу, работающую в текстовом режиме (ширина экрана равна 80 столбцов), которая должна выводить на экран список файлов и каталогов в текущей директории (в которой запущена программа). Если весь список не умещается на одном экране, то при нажатии клавиш Up, Down прокручивать список.
главная проблема откуда брать имена со scandir проблемы

Добавлено через 1 час 39 минут
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
#include <dirent.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
int main(void)
{
DIR *dir=opendir(".");
int i=0;
if(dir)
{
  struct dirent *ent;
  printf("File: \n\n");
  while((ent=readdir(dir))!=NULL)
  {
    if(strcmp("..",ent->d_name)&&strcmp(".",ent->d_name))
      {printf("%s    ",ent->d_name);
   
    i++;
    if(i%4==0) printf("\n");}
  }
}
else printf("Can't opening directory\n");
 
printf("kol %d\n",i);
 
return 0;
}
Более менее реализовал только фалов чуть больше показывает чем через ls, поправьте кто может и
Помогите реализовать кнопки Up and Down.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 21:34     Вывести на экран список файлов и каталогов в текущей директории
Посмотрите здесь:

Вывести на экран содержимое директории C++
C++ Список файлов в директории
Вывести список файлов каталога C++
C++ Определение текущей директории
Сравнить содержимое файлов между собой, и если оно совпадает, то вывести на экран имена этих файлов C++
C++ Вывести на экран в текущем каталоге имена тех каталогов, которые в себе не содержат подкаталогов
C++ Вывести список всех файлов из указанной директории, имена которых содержат русские буквы
C++ Достать список файлов из директории
C++ Вводится число N. Создать список его делителей и вывести список на экран
Получить список файлов и папок в директории C++
C++ Получить список файлов в заданной директории
C++ Получить список файлов в директории

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6471 / 2246 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.04.2014, 00:33     Вывести на экран список файлов и каталогов в текущей директории #2
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
#include <ncurses.h>
#include <dirent.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    int y = 0, key, dir_entries_count, file_index, lines_count=0;
    WINDOW* w;
    struct dirent **namelist;
 
    dir_entries_count = scandir(".", &namelist, NULL, NULL);
    if(dir_entries_count < 0)
        return;
    file_index = dir_entries_count;
 
    while(file_index--)
        lines_count += strlen(namelist[file_index]->d_name)/80 + 1;
    file_index = dir_entries_count;
 
    initscr();
    w = newpad(lines_count+1, 80);
    keypad(w, TRUE);
 
    while(file_index--)
    {
        wprintw(w, "%s\n", namelist[file_index]->d_name);
        free(namelist[file_index]);
    }
    free(namelist);
    prefresh(w, 0, 0, 0, 0, LINES-1, COLS-1);
 
    while(key != 10) 
    { 
        key = wgetch(w); 
        switch(key) 
        {
            case KEY_UP: 
                if(y>0) --y;
                break; 
            case KEY_DOWN: 
                if(y<(lines_count-1)) ++y;
                break; 
            case 10:
                break;
            default:
                key = 0;
        } 
        prefresh(w, y, 0, 0, 0, LINES-1, COLS-1);
    }
 
    endwin();
    return 0;
}
Yandex
Объявления
02.04.2014, 00:33     Вывести на экран список файлов и каталогов в текущей директории
Ответ Создать тему
Опции темы

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