Salut à tous !
Je suis entraine d'écrire un programme qui pourrait m'interroger sur du vocabulaire que j'ai précédemment rentré. Cependant je suis encore débutant, mon programme n'a pas l'air très stable et je ne comprend pas mes erreurs
Je précise avant de vous donner le code que le programme doit-être capable de recevoir du vocabulaire, de le sauvegarder et à l'avenir de mémoriser le nombre d'interrogation sur un mot ainsi que son nombre d'erreurs

Main :
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
int main(int argc, char** argv)
{
	char answer = 0;
	cout << " *** Bonjour ! " << endl;
	vector<Words*> list;
	do
	{
		cout << " *** Ecriver votre choix :" << endl;
		cout << " * 1  = Ajouter du vocabulaire" << endl;
		cout << " * 2  = S'entrainer" << endl;
		cout << " * 0  = Quitter" << endl;
		cout << " * 3  = tester la liste" << endl;
 
		cout << "Reponse : ";
		cin >> answer;
		if (answer == '1') list = new_vocabulary();
		if (answer == '2')test_vocabulary();
		if (answer == '3')test_list(list);
	} while (answer != '0' && answer != NULL && answer != ' ');
 
	for (int i = 0; i <= list.size(); i++)
	{
		delete list[i];
		list[i] = 0;
	}
}
New vocabulary :
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
 
vector<Words*> new_vocabulary()
{
	const string link("vocab.txt");
	vector<Words*> list = update_list();
	ofstream vocab_file;
	vocab_file.open(link.c_str(), ios::app);
	string engWord, frWord;
 
	cin.ignore();
 
	do
	{
		cout << " * Donner le mot en anglais : " << endl;
		getline(cin, engWord);
		if (engWord != "")
		{
			cout << " * Donner le mot en français : " << endl;
			getline(cin, frWord);
 
			cout << " * Votre mot est : " << engWord << endl;
			cout << " * Qui se traduit par : " << frWord << endl << endl;
 
			vocab_file << engWord << " | " << frWord << endl; 
 
		}
	} while (engWord != "");
	vocab_file.close();
	return list;
}
 
vector<Words*> update_list()
{
	ifstream vocab_file;
	vocab_file.open("vocab.txt");
	vector<Words*> list;
	string line, frWord, engWord, nextWord;
	int pos = 0;
	while (getline(vocab_file, line))
	{
		if (line.find(" | ") != string::npos)
		{
			pos = line.find(" | ");
			for (int i = 0; i < pos; i++) 
			{
				engWord += line[i];
			}
			for (int i = pos + 3; i < line.length(); i++)
			{
				frWord += line[i];
			}
			cout << "Mot anglais : " << engWord << endl;
			cout << "Mot français : " << frWord << endl << endl;
			list.push_back(new Words(engWord, frWord));
		}
		else cout << "Erreur séparation introuvable" << endl;
		frWord = "";
		engWord = "";
	}
	vocab_file.close();
	return list;
}
et test vocabulary est encore vide.
Je remercie d'avance ceux qui prendront le temps de se pencher sur mon code, qui je pense doit-être remplie d'erreurs