Erreur de comparaison ISO C : pointeurs et entiers
En travaillant sur un exemple tiré du livre C de Bjarne Stroustrup, certains utilisateurs ont rencontré un problème de compilation. erreur de temps indiquant qu'ISO C interdit la comparaison entre un pointeur et un entier. Ce problème résulte d'une comparaison impliquant une variable char et une constante chaîne dans la fonction accept().
Cause :
L'erreur se produit car ISO C interdit la comparaison directe d'un pointeur de caractère (tel que char*) avec un entier (tel que la valeur numérique d'un caractère entre guillemets doubles, par exemple "y").
Solutions :
Il existe deux manières principales de résoudre cette erreur :
Approche préférable : utiliser une variable de chaîne :
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; string answer; cin >> answer; if (answer == "y") return true; return false; }</code>
Approche alternative : utilisation de guillemets simples :
<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>
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!