"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment corriger l'erreur de comparaison entre le pointeur et l'entier en C++

Comment corriger l'erreur de comparaison entre le pointeur et l'entier en C++

Publié le 2024-11-18
Parcourir:309

How to Fix Comparison Error Between Pointer and Integer in C

Erreur de comparaison en C : pointeur contre entier

Lors de la tentative de compilation d'une fonction simple à partir du livre C de Bjarne Stroustrup, troisième édition, développeurs peut rencontrer l'erreur de compilation :

error: ISO C   forbids comparison between pointer and integer

Ce problème se produit lors de la comparaison d’un pointeur avec un entier. Dans le code fourni :

#include 
#include 
using namespace std;
bool accept()
{
    cout > answer;
    if (answer == "y") return true;
    return false;
}

L'erreur apparaît dans l'instruction if où la réponse est comparée à une chaîne littérale ("y"). Puisque la réponse est une variable de caractère, elle doit être comparée à une constante de caractère.

Solution

Il existe deux solutions à ce problème :

  1. Utilisez une variable de chaîne :
    Déclarez la réponse en tant que type de chaîne au lieu de char. Cela vous permettra de comparer correctement la réponse à une chaîne littérale :

    string answer;
    if (answer == "y") return true;
  2. Utiliser la constante de caractère :
    Au lieu de comparer la réponse à une chaîne littérale, utilisez une constante de caractère entre guillemets simples :

    if (answer == 'y') return true; // Note single quotes for character constant

Les deux méthodes résolvent efficacement l'erreur en garantissant que la comparaison s'effectue entre des types compatibles.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729663819. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3