Salut,
Je débute en C (et en programmation tout court) donc soyez indulgents.
Je cherche à lire ce fichier: http://abiboom.snv.jussieu.fr/Linf [...] C_IlvI.adn
La première ligne est le commentaire com et le reste une séquence nucléotidique seq. Je souhaite obtenir la longueur en nucléotides de cette séquence.
J'ai donc pondu le code suivant:
Code :
- #include<stdio.h>
- #include<string.h>
- typedef struct{
- char com[101];
- char seq[10001];
- int lg;
- } Sequence;
- Sequence LitFasta(char nom[]){
- Sequence s;
- FILE * fi;
- char tmpseq[82];
- fi=fopen(nom,"r" );
- if(fi!=NULL)
- {
- s.seq[0]='\0';
- fgets(s.com,81,fi);
- while(fgets(tmpseq,81,fi)!=NULL)
- {
- tmpseq[strlen(tmpseq)-1]='\0';
- strcat(s.seq,tmpseq);
- }
- fclose(fi);
- }
- s.lg=strlen(s.seq);
- return s;
- }
- int main()
- {
- char NomFich[101];
- Sequence adn;
- printf("Nom du fichier? \n" );
- scanf("%s",NomFich);
- adn=LitFasta(NomFich);
- printf("%s \n",adn.com);
- printf("%s \n",adn.seq);
- printf("%s \n",adn.lg);
- return 0;
- }
|
Apparemment ça bloque à la ligne 31:
s.lg=strlen(s.seq);
La séquence s'affiche correctement et je ne vois pas pourquoi l'exécutable (ça compile correctement) me renvoit un segmentation fault. Si vous avez une idée...
Message édité par Profil supprimé le 19-03-2009 à 11:06:19