Maison  >  Article  >  développement back-end  >  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

Linda Hamilton
Linda Hamiltonoriginal
2024-10-23 16:10:02271parcourir

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 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 survient lors de la comparaison d'un pointeur avec un entier. Dans le code fourni :

<code class="cpp">#include <iostream>
#include <string>
using namespace std;
bool accept()
{
    cout << "Do you want to proceed (y or n)?\n";
    char answer;
    cin >> answer;
    if (answer == "y") return true;
    return false;
}</code>

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 :

    <code class="cpp">string answer;
    if (answer == "y") return true;</code>
  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 entourée de guillemets simples :

    <code class="cpp">if (answer == 'y') return true; // Note single quotes for character constant</code>

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn