Bonjour la communauté,
Je vous préviens je suis un débutant en programmation et dans le forum aussi !
J'ai un petit problème sur un programme que je dois faire en C++ pour les cours ! Il s'agit d'un programme devant traiter des datas, j'ai fais le script, et quand je génère la solution une première fois il me dit que la génération a réussi cependant, quand j’exécute le débogage il me remonte une erreur et quand je régénère mon programme il me dit "========== Génération : 0 a réussi, 0 a échoué, 1 mis à jour, 0 a été ignoré ==========.
L'erreur remontée lors de l’exécution sans débogage est " la variable prod est utilisé sans avoir été initialisé", je me demande si tel est le cas, pourquoi il m'a pas remonté cette erreur lors de la génération ? Je suis pourtant assez sûre du code et je suis surpris du message.
EN vous remerciant du temps que vous passerez pour me répondre !
Voici le 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 #include <iostream> #include <fstream> #include <string> #include <stdio.h> #include <sstream> #include <vector> using namespace std; class Product { // Access specifier public: // Data Members int num_piece; int ref; int quantity; }; int main() { // File pointer reader fstream fin; fin.open("log.csv", ios::in); // File pointer writer std::ofstream fout; fout.open("log-copie.csv"); // Read the Data from the file std::string line, word, temp; // vector of products to group products with the same num_piece vector<Product> products; // Current product (by line) Product prod; // first num_piece int start = 1; // boolean indicating the end of the file bool end; // to avoid processing the header getline(fin, temp); while (!fin.eof()) { // read an entire row and // store it in a string variable 'line' getline(fin, line); // check that we still have lines with content if (line.empty()) { end = true; } // used for breaking words std::stringstream s; s.str(line); // read every column data of a row and // store it in a string variable, 'word' vector<int> infos; while (getline(s, word, ';')) { infos.push_back(stoi(word)); } // after reading the product infos we create an object with those values if (infos.size() == 3) { prod.num_piece = infos[0]; prod.ref = infos[1]; prod.quantity = infos[2]; infos.clear(); } // if the num_piece of the prod change , then we save lines of the corresponding num_piece into the file if (prod.num_piece > start || end == true) { auto iter = products.begin(); for (; iter != products.end(); iter++) { fout << (*iter).num_piece << ";" << (*iter).ref << ";" << (*iter).quantity << endl; } // we move to the next num_piece start = prod.num_piece; // clear the products vector products.clear(); } // we put all products with the same num_piece into a vector // we keep only the (ERgt)max quantity for each reference value auto iter = products.begin(); int found = 0; for (; iter != products.end(); iter++) { if ((*iter).ref == prod.ref) { found = 1; if (prod.quantity > (*iter).quantity) { (*iter).quantity = prod.quantity; } } } if (not(found)) products.push_back(prod); } // save kept lines fout.close(); }
Partager