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(); }
Partager