Error C2106: '=' : l'opérande gauche doit être une l-value

Résolu
sarahim Messages postés 4 Date d'inscription dimanche 21 mars 2010 Statut Membre Dernière intervention 16 juin 2010 - 30 avril 2010 à 22:38
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 2 mai 2010 à 12:25
svp aide moi,je travail avec le visual studio c++ windows forms,depuis hier jarrive pas aresolu cette erreur (error C2106: '=' : l'opérande gauche doit être une l-value) dans la ligne de mon code

while( !f1->EndOfStream && word=f1->ReadLine() && word[0]!='#' )
ma fonction est la suivante
#include "StdAfx.h"
#include "indexation.h"
#include
#include <fstream>
#include <string>


using namespace std;
using namespace System;
using namespace System::IO;

void indexation::rec_sec(String^name_fichier,String ^name_fichier1)
{
String ^word;
if(name_fichier=="cacm10.txt" && name_fichier1=="doc_indexe.txt")
{
StreamReader^ f1 = gcnew StreamReader( "cacm10.txt" );

StreamWriter^ f2 = gcnew StreamWriter("doc_indexe.txt");
if( File::Exists("cacm10.txt") && File::Exists("doc_indexe.txt"))
while( !f1->EndOfStream )
word= f1->ReadLine();
if(word[0]=='#')
if(word[1]=='I') f2->Write(word);
else if(word[1]=='T'||word[1]=='A'||word[1]=='W'||word[1]=='K')
{f2->Write(word);
while ( !f1->EndOfStream && word=f1->ReadLine() && word[0]!= '#' )
f2->WriteLine(word);
}
f1->Close();
f2->Close();}
else {
StreamReader^ f1 = gcnew StreamReader( "query10.txt" );

StreamWriter^ f2 = gcnew StreamWriter("query_indexe.txt");
if( File::Exists("query10.txt") && File::Exists("query_indexe.txt"))
while(!f1->EndOfStream && (word = f1->ReadLine()))
if(word[0]=='#')
if(word[1]=='I') f2->WriteLine(word);
else if(word[1]=='T'||word[1]=='A'||word[1]=='W'||word[1]=='K')
{f2->WriteLine(word);
while ( !f1->EndOfStream && word=f1->ReadLine() && word[0]!='#' ) f2->WriteLine(word);
}
f1->Close();
f2->Close();}
}
svp svp aide moi

1 réponse

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
2 mai 2010 à 12:25
Salut,

Essaie de mettre des parenthèses pour ne pas avoir de souci de priorité d'opérateurs.

Ensuite, la partie qui semble poser problème est l'affectation :
word=f1->ReadLine()


Tu affectes un String (Retour de ReadLine) dans un String^ (Déclaration de word) visiblement. Les ^ sont des genres de références sur les objets managés, si je ne m'abuse. Peut être peux-tu essayer de déclarer word comme String.
3
Rejoignez-nous