Maison > développement back-end > C++ > 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
Libérer: 2024-10-23 16:10:02
original
370 Les gens l'ont consulté

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
Copier après la connexion

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>
Copier après la connexion

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>
    Copier après la connexion
  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>
    Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal