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 71 72 73 74 75
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "ed/inc/sys.h"
#define VALUE 512
static int setSequence(char const *filename)
{
int ret = EXIT_SUCCESS;
long SIZE = VALUE;
char ligne[VALUE];
char *Sequence = malloc(SIZE * sizeof * Sequence);
if (Sequence != NULL)
{
FILE *file = fopen(filename, "r");
LIM_PTR (Sequence, SIZE);
CHK_PTR (Sequence, SIZE);
if (file != NULL)
{
while (fgets(ligne, sizeof ligne, file) != NULL && ret == EXIT_SUCCESS)
{
if (ligne[0] != '>')
{
strcat(Sequence, ligne);
CHK_PTR (Sequence, SIZE);
SIZE = SIZE + VALUE;
{
void *tmp = realloc(Sequence, SIZE * sizeof * Sequence);
if (Sequence != NULL)
{
Sequence = tmp;
}
else
{
fprintf(stderr, "Memory allocation error !\n");
ret = EXIT_FAILURE;
}
}
}
}
printf("%s\n", Sequence);
fclose (file), file = NULL;
}
else
{
perror(filename);
ret = EXIT_FAILURE;
}
free(Sequence), Sequence = NULL;
assert (file == NULL);
}
else
{
fprintf(stderr, "Memory allocation error !\n");
ret = EXIT_FAILURE;
}
assert(Sequence == NULL);
return ret;
}
int main (void)
{
char const *filename = "data.txt";
setSequence(filename);
return 0;
} |
Partager