Bonjour, je suis en train de faire un programme qui a pour but de lire une données dans un tableau qui se trouve en variable globale dans le fichier donnees.cpp. Je veux utiliser ce tableau dans le fichier test.cpp et il me dit :

error C2679: '=' binaire*: aucun opérateur trouvé qui accepte un opérande de partie droite de type 'std::string' (ou il n'existe pas de conversion acceptable)

voici le code mes deux fichiers :
donnees.cpp
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
 
#include <iostream>
#include "stdafx.h"
#include <string>
#include <fstream>
using namespace std;
 
const int nbdonnees = 66; //constante du nombre de donnees à recuperer
string tabdonnees[nbdonnees]; //tableau servant à ranger mes donnees
string tabvaleur[nbdonnees]; //tableau dans lequel seront rangées les valeurs des données
void RangerDonnees(); //procedure qui rempli le tableau
 
 
int main()
{
 
		int i =1; //indice de parcours du tableau où sont rangé les données du fichier matlab
		string mot;
		string chaine1;
 
		RangerDonnees();
		ifstream fichier("donnees.m", ios::in);  // on ouvre en lecture;
        if(fichier)  // si l'ouverture a fonctionné
        {
			fichier >> mot; // on lit le premier mot du fichier
			while(i != nbdonnees) //tant que l'on a pas recuperer toutes les valeurs
			{
				while(mot != tabdonnees[i] ) // tant que le mot est different du mot du tableau
				{			
					fichier >> mot; // on lit le mot suivant
				}
				fichier.seekg(2, ios::cur); //on se place sur la valeur à recuperer
				fichier >> chaine1;	//on lit la valeur
				tabvaleur[i] = chaine1; // on range la valeur dans le tableau
				i++; //on passe à la donnee suivante
			}
			fichier.close();
        }
		else
		{        
			cerr << "Impossible d'ouvrir le fichier1 !" << endl;
		}
		ofstream fic("test.txt", ios::out | ios::trunc);  // on ouvre en ecriture
		if(fic)  // si l'ouverture a fonctionné
        {
			i=1;
			while(i != nbdonnees)
			{
				fic << tabdonnees[i]<< " = ";   //on ecrit dans test.txt
				fic << tabvaleur[i] << endl; 
				i++;
			}
			fic.close();
		}
		else
		{        
			cerr << "Impossible d'ouvrir le fichier2 !" << endl;
		}
        return 0;
}
 
void RangerDonnees()
{
		tabdonnees[1] = "type_assemblage";
		tabdonnees[2] = "type_bague";
		tabdonnees[3] = "Nombre_de_pistes";
		tabdonnees[4] = "type_element_roulant";
		tabdonnees[5] = "E_bague";
		tabdonnees[6] = "nu_bague";
		tabdonnees[7] = "h_totale_bague";
}
test.cpp
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
 
#include "stdafx.h"
#include "test.h"
#include "donnees.cpp"
 
#include "testDoc.h"
#include "testView.h"
#include ".\testview.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
 
// CtestView
 
IMPLEMENT_DYNCREATE(CtestView, CFormView)
 
BEGIN_MESSAGE_MAP(CtestView, CFormView)
 
	ON_BN_CLICKED(IDC_BUTTONOK, OnBnClickedButtonok)
END_MESSAGE_MAP()
 
// construction ou destruction*de CtestView
 
CtestView::CtestView()
	: CFormView(CtestView::IDD)
	, m_strNom(_T(""))
	, m_strPrenom(_T(""))
	, m_strAdresse(_T(""))
	, m_strCdp(_T(""))
	, m_strVille(_T(""))
{
	// TODO : ajoutez ici le code d'une construction
 
}
 
CtestView::~CtestView()
{
}
 
void CtestView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, m_strNom);
	DDX_Text(pDX, IDC_EDIT3, m_strPrenom);
	DDX_Text(pDX, IDC_EDIT5, m_strAdresse);
	DDX_Text(pDX, IDC_EDIT4, m_strCdp);
	DDX_Text(pDX, IDC_EDIT2, m_strVille);
	DDX_Control(pDX, IDC_BUTTONRAZ, m_strRAZ);
	DDX_Control(pDX, IDC_EDIT1, m_EditNom);
}
 
void CtestView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
 
	//initialisation manuelle
	m_strNom = tabvaleur[2];
	UpdateData(FALSE);
je n'ai pas mis tout le code, seulement la partie qui est utile.

Merci d'avance pour votre aide.