L'expression de l'erreur C ++ doit être une LVALUE modifiable

L'expression de l'erreur C ++ doit être une LVALUE modifiable

Lors de la rédaction du code, diverses erreurs peuvent se produire au moment de l'exécution. Il existe différents types d'erreurs telles que les erreurs logiques, les erreurs de syntaxe et les erreurs de temps de compilation. Les erreurs logiques sont difficiles à vérifier car aucune erreur ne s'affiche dans ces types d'erreurs tandis que les erreurs de temps de syntaxe et de compilation peuvent être détectées au moment de l'exécution. Dans ce guide, nous discuterons également du type d'erreur «Erreur: LVALUe requis en tant qu'opérande gauche». Cette erreur se produit principalement tout en comparant deux variables ou entiers. Ce type d'erreur se produit en raison d'une idée fausse ou d'une erreur lors de l'écriture du code. Parfois, les programmeurs des débutants ont des idées fausses sur les affectations et les opérateurs de comparaison en raison de laquelle ils sont confrontés à ce type d'erreur. Parfois, lors du codage, le programmeur fait Mistakea et utilise l'opérateur d'affectation au lieu de l'opérateur de comparaison. Ceci est facile à résoudre car dans la partie de sortie, la description de l'erreur qui est LVALUE est requise.

Syntaxe:

Il n'y a pas une telle syntaxe spécifique pour cela car elle ne fait pas partie du code. C'est le bug qui s'affiche dans la zone de sortie lorsque nous exécutons le code. Ce qui suit est un exemple sur la façon dont cette erreur ressemble:

Erreur: LVALUE requise en tant qu'opérande gauche de l'affectation

Dans l'erreur mentionnée précédemment, le LVALUE signifie que l'objet qui peut avoir un emplacement de mémoire identifié. On peut également dire qu'il a une adresse spécifiée dans la mémoire où il est stocké. Lorsque nous parlons de mission, il peut stocker les données.

Exemple 1:

Maintenant, nous implémentons un exemple dans lequel nous générons ce type d'erreur et le résolvons. Nous inclurons d'abord le fichier d'en-tête ioStream qui permet au compilateur d'effectuer les opérations d'E / S. Après cela, nous créons trois variables de type entier à l'intérieur de la méthode principale. Le premier type entier est «A» à laquelle nous attribuons la valeur «2». Nous attribuons la valeur «3» à la deuxième variable «B» Identique à la troisième variable qui est «C» où elle détient la valeur «3». Après cela, nous utilisons une instruction if () pour comparer les variables. Nous passons deux conditions: la première condition est que la variable «A» n'est pas égale à la variable «B». La deuxième condition est que la variable «B» est égale à la variable «C». Si les deux déclarations sont vraies, il affiche le message «Comparaison Matchs». Enfin, nous retournons la valeur nul.

#inclure
Utilisation de Namespace Std;
int main()

int a = 2;
int b = 3;
int c = 3;
si un != b && b = c)

std :: cout << "Comparison match" << std::endl;

retour 0;

Après l'exécution du code, nous obtenons une erreur qui affiche qu'il existe une erreur qui affiche «LVALUE requise en tant qu'opérande gauche de l'affectation». Comme nous le savons, l'erreur se produit en ligne et le type d'erreur indique également qu'il y a une valeur gauche (lvalue) qui est requise à gauche de l'opérande à laquelle il pointe. Maintenant, nous résolvons cette erreur en remplaçant l'opérateur d'affectation «=» par l'opérateur de comparaison «= =». Ensuite, nous exécutons à nouveau le code.

Après avoir à nouveau exécuté le code, nous obtenons cette sortie qui montre que nous avons exécuté le code sans avoir d'erreur. Cela montre que nos conditions sont vraies.

Exemple 2:

Perdons-nous un autre exemple pour avoir une meilleure idée pour résoudre ces erreurs. Dans cet exemple, nous créerons trois variables et, ayant le mode de deux variables, nous le comparons ensuite au troisième en utilisant la déclaration if-else. Si la comparaison correspond, il se déplace à l'intérieur de l'instruction IF. S'il ne correspond pas, il exécute l'instruction ELSE. Voyons notre code dans lequel nous incluons d'abord nos fichiers d'en-tête, puis passons à notre fonction principale où nous déclarons les trois variables nommées "Val1", "Val2" et "Val3" auxquelles nous attribuons les valeurs "2" , «3» et «5». Après cela, en utilisant l'instruction IF, nous comparons le mode des variables «Val1» et «Val2» avec la troisième variable, «VAL3». Si cela correspond, notre code intérieur de l'instruction IF est exécuté. Si ce n'est pas vrai, l'instruction ELSE est exécutée. À la fin, nous exécutons notre code en renvoyant la valeur nul.

#inclure
Utilisation de Namespace Std;
int main()
int Val1 = 2;
int Val2 = 3;
int Val3 = 5;
if ((val1% val2) = val3)

std :: cout << "Comparison is a match" << std::endl;

autre

std :: cout << "Comparison doesn't match" << std::endl;

retour 0;

Après avoir exécuté notre code, nous découvrons ce type d'erreur qui indique que nous avons raté le LVALUE car l'opérande gauche de l'affectation indique la variable «VAL3». Cela signifie que la Lvalue manquante est à gauche de la variable «Val3». Étant donné que l'opérateur de comparaison n'est pas utilisé dans ce cas et que l'opérateur d'affectation est utilisé à la place, une erreur se produit. Une autre chose à garder à l'esprit est que nous ne pouvons attribuer la valeur à aucune variable dans l'instruction if (). L'instruction if () est utilisée pour la comparaison des variables et non pour attribuer les valeurs à la variable. C'est pourquoi il affiche cette erreur. Maintenant, nous résolvons ce problème en remplaçant l'opérateur d'affectation par l'opérateur de comparaison. Ensuite, nous réexécutions le code.

Après la réexécution de notre code, nous affichons le message - "La comparaison ne correspond pas". La raison de la transmission de ce message est que les instructions ELSE sont exécutées comme vu dans le code précédent. Nous créons trois variables auxquelles nous attribuons les valeurs et le mode de deux valeurs est comparée au troisième. Ici, le mode de «Val1» et «Val2» est «0.6 ”, en le comparant avec le Val3 qui contient le nombre« 5 ». Il n'est pas vrai que la valeur de «Val3» est égale à «0.6 ”. Le compilateur ignore le code intérieur de l'instruction if et exécute l'instruction ELSE.

Conclusion

Dans ce tutoriel, nous avons discuté de l'erreur de temps de compilation qui se produit très probablement en raison d'une idée fausse ou d'une erreur qui est commise par le programmeur. Nous avons expliqué l'erreur avec une brève description et avec plusieurs exemples pour vous faciliter la tâche pour avoir une idée à ce sujet et la méthode pour résoudre et comprendre le type d'erreur. Nous avons fait tout l'effort pour vous rendre le plus simple possible pour corriger cette erreur chaque fois qu'elle apparaît dans votre code que vous écrivez un programme.