Bonjour tous,
J'ai un petit programme à faire pour jeudi mais je rencontre de grosses difficultés car je n'ai pas l'habitude du C++ et de la manipulation des chaines de caractères, c'est pour cela que je vous sollicite.
Je dois faire un debut de programme où le main.cpp nous renvoi à une fonction input qui permettra de lire un fichier texte (de taille variable) et classer les objets dans des vecteurs (<vector>):
Voici mon fichier texte (exemple):
Voici mon main.cpp (je ne sais pas trop comment allouer la memoire dynamique et en meme temps renvoyer le contenu du fichier txt à une fonction):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 # matrix name lattice_parameter atomic_volume matrix ferrite 2.85 1e-30 matrix aluminium 1.85 1.2e-30 #precipitate name lattice_parameter atomic_volume precipitate VC 4.1 precipitate Mg2Si 4 precipitate Mg5Si6 4.7 #element name stoechiometrique coeff Mg2Si 2 1
Voici mon input.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <iostream> #include <fstream> #include <string> #include <vector> #include "input.h" using namespace std; int *dataBase = NULL; int main(int argc, char **argv) { *dataBase = new string("dataBase.txt"); input(&dataBase); delete dataBase; return 0; }
Voici mon input.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #ifndef INPUT_H #define INPUT_H #include <string> void input(std::string *dataBase); #endif
mais franchement je suis perdu
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 #include <iostream> #include <fstream> #include <string> #include <vector> #include "input.h" using namespace std; vector <string> matrix; void input(string *dataBase) { string command,dump; *dataBase.open(*dataBase.c_str(),ios::in); while (!dataBase.eof()) { *dataBase >> command; if(!dataBase.eof()) { if(command=="#") { getline(dataBase,dump); cout << dump << endl; } if(command=="matrix"); { string MatrixName; double LatticeParameter, AtomicVolume; cout << "Matrix command invoqued" << endl; command >> MatrixName; command >> LatticeParameter; command >> AtomicVolume; *matrix = new Matrix(MatrixName, LatticeParameter, AtomicVolume); matrix.push_back(_matrix); cout << MatrixName << endl; cout << matrix.size() << endl; } if(command=="precipitate"); { //ici je veux mettre le nom et nombre dans un vecteur //mais ca sera comme au dessus pour matrix } if(command=="element"); { //ici je veux mettre le nom et nombre dans un vecteur //mais ca sera comme au dessus pour matrix } } } dataBase.close(); }








Répondre avec citation



car je ne sais pas trop comment je dois structurer mon programme et je n'ai pas l'habitude d'utiliser vector, j'ai fais un peut par defaut en essayant de recopier des morceaux de code d'un tuto/faq




Partager