Problème avec les pointeurs dans une structure

Résolu/Fermé
alex1902 Messages postés 40 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 28 décembre 2015 - 9 avril 2013 à 04:42
alex1902 Messages postés 40 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 28 décembre 2015 - 9 avril 2013 à 22:37
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 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
9 avril 2013 à 16:42
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 13 Date d'inscription jeudi 16 décembre 2010 Statut Membre Dernière intervention 3 mai 2013
9 avril 2013 à 11:07
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 40 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 28 décembre 2015 1
9 avril 2013 à 22:37
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 40 Date d'inscription vendredi 19 février 2010 Statut Membre Dernière intervention 28 décembre 2015 1
9 avril 2013 à 22:34
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