Skip to content
Snippets Groups Projects
main.c 1.63 KiB
Newer Older
chafiol's avatar
chafiol committed
#include "algos.h"
chafiol's avatar
chafiol committed

chafiol's avatar
chafiol committed
int readToTab(long* tab, char* file){
    int n = 0;
chafiol's avatar
chafiol committed
    int fd = open(file, O_RDONLY);
chafiol's avatar
chafiol committed
    if(fd == -1){
        perror("open");
        exit(1);
    }
    char tmp[1000];
    memset(tmp, 0, 1000);
    char temp;
    size_t j = 0, x=0;
    read(fd,&temp,sizeof(char));

    while(temp != '.'){
        if(temp != ' '){
            tmp[x] = temp;
            x++;
            n++;
        }
        else if(temp == ' '){
            long t = atol(tmp);
            tab[j] = t;
            memset(tmp, 0, 1000);
            j++;
            x=0;
        }
        read(fd,&temp,sizeof(char));
    }
    return n-1;
chafiol's avatar
chafiol committed
}
chafiol's avatar
chafiol committed
int main(int argc, char **argv){
chafiol's avatar
chafiol committed
    if(argc!=3){
        printf("Usage: ./tri <option> <input.txt>\n");
        exit(1);
    }

chafiol's avatar
chafiol committed
    long tab[100];
    int n = readToTab(tab, argv[2]);
    printf("Base      : ");
    for(int i  = 0; i<n; i++){
        printf("%ld,", tab[i]);
chafiol's avatar
chafiol committed
    }
chafiol's avatar
chafiol committed
    printf("\n");
chafiol's avatar
chafiol committed

    if((strcmp(argv[1], "--insertion") == 0)){
chafiol's avatar
chafiol committed
        triInsertion(tab, n);
        printf("Insertion : ");
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
    }
    else if((strcmp(argv[1], "--fusion")== 0)){
chafiol's avatar
chafiol committed
        triFusion(tab, n);
        printf("Fusion : ");
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
    }
    else if((strcmp(argv[1], "--rapide")== 0)){
chafiol's avatar
chafiol committed
        triRapide(tab, n);
        printf("Rapide : ");
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
    }
    else{
        printf("Usage: ./tri <option> <input.txt>\n");
    }
chafiol's avatar
chafiol committed
    return 0;
}