Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Разработать программу, которая выводит на экран со


Автор: Miracleone 23.6.2019, 09:34
Разработать программу, которая выводит на экран содержимое текущего каталога в порядке возрастания размеров файлов. При этом имена каталогов должны выводиться первыми. 
Этот код просто выводит имена. Помогите сделать по возрастанию. Заранее, спасибо.
Код

#include <stdio.h>
#include <string.h>  
#include <errno.h>
#include <dirent.h>
 
 
#define DIRNAME "."
#define OFNAME  "out.log"
 
int main(void)
{
    FILE *ofp; 
    DIR *dp;
    struct dirent *dent;
 
    if( (dp = opendir(DIRNAME)) == NULL) {
 
        fprintf(stderr, "opendir: %s: %s\n", DIRNAME, strerror(errno));
        return 1;
    }
    if( (ofp = fopen(OFNAME, "w")) == NULL) {
        fprintf(stderr, "fopen: %s: %s\n", OFNAME, strerror(errno));
        return 1;
    }
 
// построчно считываем имена файлов из каталога
    while(dent = readdir(dp))
 
// проверка, что имя каталога не равно «.» и «..»
        if(strcmp(".", dent->d_name) && strcmp("..", dent->d_name))
    closedir(dp);
    fclose(ofp);
    return 0; 
}

Автор: kapbepucm 25.6.2019, 13:25
Размер каждого файла можно вычислить, например, используя комбинации fseek(FILE*, 0, SEEK_END) и ftell(FILE*) из stdio.h

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)