Home > Backend Development > C++ > Why am I Getting a \'Compile Error: ISO C Forbids Comparison Between Pointer and Integer\'?

Why am I Getting a \'Compile Error: ISO C Forbids Comparison Between Pointer and Integer\'?

Barbara Streisand
Release: 2024-10-30 08:20:02
Original
384 people have browsed it

Why am I Getting a

Compile Error: "ISO C Forbids Comparison Between Pointer and Integer"

When trying to compile a function in C , you may encounter a "compile error: ISO C forbids comparison between pointer and integer." This error results from an attempt to compare a pointer value with an integer.

The Issue

In the provided code snippet:

<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>
Copy after login

The error occurs on the line:

<code class="cpp">if (answer == "y") return true;</code>
Copy after login

Here, the variable answer is declared as a char, while the string literal "y" is a string. Comparing a char pointer to a string literal is forbidden in ISO C , as it can lead to subtle errors.

Solutions

There are two ways to fix this issue:

1. Convert answer to a string:

<code class="cpp">string answer;</code>
Copy after login

This approach is preferred because it aligns with modern C best practices.

2. Use single quotes for the string literal:

<code class="cpp">if (answer == 'y') ...</code>
Copy after login

Single quotes denote a char constant, which is compatible with the char variable answer.

The above is the detailed content of Why am I Getting a \'Compile Error: ISO C Forbids Comparison Between Pointer and Integer\'?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template