Problème avec les pointeurs dans une structure

Résolu
alex1902 Messages postés 56 Statut Membre -  
alex1902 Messages postés 56 Statut Membre -
Bonjour,

Tout d'abord, voici la première fonction que j'ai réalisée. Il s'agit d'une fonction qui met dans un tableau dynamique les questions d'un fichier texte, ainsi que les réponses (d'un autre fichier texte) dans un autre tableau dynamique.

# include <iostream>
# include <fstream>
# include <windows.h>
# include <cmath>
# include <string>

using namespace std;

struct sDonnee 
{
	int nombreDonneesMax; 
	int nombreDonnees; 
	string * questions; 
	string * reponses; 
};

bool chargerQuestionsReponses(sDonnee& donnee, fstream& questions, fstream& reponses)
{

	string temp;
	donnee.nombreDonnees = 0;

	//Ouverture des fichiers en lecture
	questions.open("Questions.txt", ios::in);
	reponses.open("Reponses.txt", ios::in);

	//Si l'ouverture ne fonctionne pas pour l'un ou l'autre des fichier, retourne false
	if (questions.fail() || reponses.fail())
	{
		return false;
	}

	else
	{
		//Lire les lignes du fichier tant que le fichier n'est pas fini et incrémenter nombreDonnees
		getline(questions,temp);

		while(questions.eof() != true)
		{
			getline(questions,temp);
			donnee.nombreDonnees++;
		}

		donnee.nombreDonneesMax = donnee.nombreDonnees + 5;

		//Fermeture des fichiers
		questions.close();
		reponses.close();

		//Réouverture des fichiers en lecture pour relire depuis le début
		questions.open("Questions.txt", ios::in);
		reponses.open("Reponses.txt", ios::in);

		//Allocation dynamique pour deux tableaux d'une dimension
		donnee.questions = new string[donnee.nombreDonnees];
		donnee.reponses = new string[donnee.nombreDonnees];

		//Boucles pour stocker les questions et les réponses dans le tableau correspondant
		for (int i = 0; i < donnee.nombreDonnees; i++)
		{
			getline(questions,temp);
			donnee.questions[i] = temp;
		}

		for (int i = 0; i < donnee.nombreDonnees; i++)
		{
			getline(reponses,temp);
			donnee.reponses[i] = temp;
		}

		return true;
	}

}



La deuxième fonction, soit celle où je bloque, est une fonction qui doit prendre les tableaux de la première fonction en paramètres pour que je puisse les parcourir.

bool retournerReponse(int numRep, **ptrQuestions**, **ptrReponses**, string motCle)
{

}


Le problème est le suivant : Je dois impérativement utiliser en paramètres les pointeurs de la structure, et non la structure au complet. Comment puis-je faire?

3 réponses

Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
retournerReponse(donnees.nombreDonnees, donnees.questions, donnees.reponses, motclef)
ou si c'est sur le prototype que tu bloques :
bool retournerReponse(int numRep, string* questions, string * reponses, string motCle)
{

}

1
othmanee33 Messages postés 16 Statut Membre
 
Assalamo alaikom,

je sais pas si j'ai bien compris votre question ou non,
vous devez créer une classe qui hérite de la classe string qui contient un pointeur sur un string et le nombre d'élément du tableau et tu le passe en paramètre à ta fonction les instances de cette classe, comme ça tu auras le tableau de string et les nombres d'éléments du tableau, j'espère que j'ai répondu à ta question.





There is no god but Allah and Muhammad is the Messenger of Allah
0
alex1902 Messages postés 56 Statut Membre 1
 
Je ne fais pas encore de programmation orientée objet! Votre solution est surement bonne, mais je n'ai pas encore les notions de programmation nécessaires pour le faire de la façon dont vous le voyez. Merci de votre réponse tout de même!
0
alex1902 Messages postés 56 Statut Membre 1
 
Merci pour vos réponses!

En fait j'avais en effet besoin du prototype, comme Char Snipeur l'a écrit, merci de ta réponse!
0