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

sarahim 4 Messages postés dimanche 21 mars 2010Date d'inscription 16 juin 2010 Dernière intervention - 30 avril 2010 à 22:38 - Dernière réponse : cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention
- 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
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 2 mai 2010 à 12:25
3
Merci
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.

Merci cs_rt15 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cs_rt15

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.