Bonjour,

Je débute en C++ et je dois faire un programme en C++ de manière à stoker un fichier en un tableau à deux dimensions.
Mon fichier est organisé comme suit ( i contient un nombre inconnu d’identifiant mais très grand)
!identifiant1
descriptif sur plusieurs lignes
!identifiant61
descriptif sur plusieurs lignes


Le but est de charger dans un vector de structure défini avec les identifiants qui commencent tous par ! dans un header et les ligne qui suivent (descriptif sur plusieurs lignes) jusqu'au prochain ! dans une séquence
il n'ya pas obligatoirement de saut de ligne entre identifiant et descriptif ( c'est aléatoire)

après je dois itérer le vector de classe pour l'afficher et compter la taille de chaque dimension...c'est juste le pétrain

MOn code bloque à plusieurs niveaux (chargement du fichier et création du vector, itération)

voici mon soit disant code
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
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
76
77
78
 
typedef struct {
	string header;
	vector<string> sequence;;
} FASTAseq;
 
 
 
 
int main()
{
 
	string adresse = "Fasta.fasta";
	vector<FASTAseq> seqF;
	vector<string> sequence;
	ifstream fasta_file ( adresse.c_str() );
//cout << sizeof(struct seq)<< endl;
	if ( !fasta_file ) {
			cout << "Erreur: impossible d'ouvrir le fichier (Mauvais chemin d'accès)." << endl;
		}
 
	else
		{	vector<string> seqF1;
 
			while ( !fasta_file.eof() )
 
				{
					seqF1.push_back ( "" ); //creation d'une ligne vide
					getline ( fasta_file, seqF1.back() ); //lecture d'une ligne du fichier
					int line = seqF1.size() - 1;//je recupere la taille du tableau (-1 pour la ligne 0)
 
					if ( seqF1[line].empty() ) //si la ligne est vide
						seqF1.pop_back();//on la retire du tableau
				}
 
			cout << "nombre de lignes : " << seqF1.size() << endl;//j'affiche le nombre de lignes pour test
		}
 
 
 
 
	if ( fasta_file ) {
 
			//Permet de vérifier si un fichier texte existe et de stocker la définiton dans d
			unsigned  int i = 0;
			string line, header, sequence;
 
			while ( getline ( fasta_file, line ) ) {
			    if (line.empty())
                    continue;
                    line.erase(0, line.find_first_not_of(" \t\r\n\v\f"));
					if ( line[0] == '!' && line.size() != 0 ) {
							fasta_file.close();
							cout << "Ce fichier n'est pas au format FASTA!!!" << endl;    //Peut-être utilisation curseur
						}
					else {
							if (line[0] == '!' ) {
									cout << "Ce fichier est pas au format FASTA!!!" << endl;
 
									header = line;
									seqF.push_back(line));
									i = 1;
								}
							else {
									sequence += line;
								}
						}
				}
 
			 seqF.push_back(FASTAseq(header,sequence));
		}
		//début itération
std::vector<FASTAseq>::iterator iter;
	for(iter =seq.begin(); iter != seq.end(); ++iter)
{
 
	}
}


Je vous remercie de bien vouloir me donner des pistes.


Bonne journée