Bonjour,
après quelques années d'égarement en Python, je cherche à parfaire mon C.
Pour cela, je fais des exercices sur rosalind.info (site d'entrainement à la bio-info), et je bloque à l'exo 2 sans comprendre mon erreur ...
L'objectif est simple: écrire un programme (j'ai choisi en C) qui lit une séquence d'ADN (ATGTGACG) et la transcrit en ARN (AUGUGACG).
Pour cela, j'ai écrit un bout de code:
Le compile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]){ FILE *infile = NULL; char chaine; infile = fopen(argv[1], "r"); if(infile != NULL){ do{ chaine = fgetc(infile); if(chaine=="T"){ printf("U"); }else{ printf("%s", chaine); } }while(chaine != EOF); }else exit(EXIT_FAILURE); return(0); }
Et en le lançant j'ai ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 gcc p2.c -o p2 p2.c: In function main: p2.c:12:13: warning: comparison between pointer and integer [enabled by default] if(chaine=="T"){ ^ p2.c:15:5: warning: format %s expects argument of type char *, but argument 2 has type int [-Wformat=] printf("%s", chaine); ^.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ./p2 test.txt Erreur de segmentation (core dumped)
(test.txt = GATGGAACTTGACTACGTAAATT)
Je ne comprends vraiment pas où j'ai faux.
Bises et bonnes fêtes!
M.
Partager