Error ISO C ++ prohíbe la comparación entre Pointer e Integer

Error ISO C ++ prohíbe la comparación entre Pointer e Integer
En C ++, los apóstrofes individuales se usan para representar caracteres, no cadenas. Utilizamos símbolos de citas dobles para personificar el puntero. Después de compilar los programas en C ++, obtenemos diferentes errores. El error de comparación es uno de ellos. A veces, después de ejecutar el programa, adquirimos "ISO C ++ prohíbe la comparación entre Pointer e Integer" o de vez en cuando, obtenemos "ISO C ++ prohíbe la comparación entre Pointer e Integer [-FperMissive]". Cuando obtenemos este tipo de errores, tenemos que verificar la condición de comparación aplicada al programa. Debemos tener esto en cuenta que la condición de comparación es incompatible con el tipo de datos distintivo. Para resolver C ++ prohíbe el error de comparación, simplemente tenemos que evaluar la forma comparable de variables definidas en condiciones.

En este artefacto, estamos trabajando en estos errores y vemos cómo resolverlos en C++.

Tener diferentes tipos de datos de variables durante la comparación:

Después de usar el estándar del espacio de nombres, declaramos la función en este caso. Luego inicializamos la variable 'V' para el valor y asignamos el valor 1. Aplicamos la condición if para comparar el valor con la función. Si el valor es mayor que la función, habrá un incremento en 1 en el valor. La función tiene que devolver el valor. Ahora comenzamos el cuerpo principal del código. Declaramos la variable 'V'.

#incluir
usando el espacio de nombres STD;
int f (int j, int k)
int v = 1;
if (v> f)
return (v+1);

regreso v;

int main ()
int v = f (4,7);
regresar 0;

Después de la compilación, obtenemos el error 'ISO C ++ prohíbe la comparación entre el puntero y el entero [-fpermissive]', por lo que el programa no se ejecuta.

Cuando aplicamos la condición si (v> f), cometemos un error aquí. Comparamos la función con entero, así que aquí esta comparación está incorrecta. Compare siempre aquellas variables que contienen un tipo de datos similar. Cuando una evaluación es inexacta, adquiriremos este tipo de error. Por lo tanto, aquí, tenemos que evaluar con algunos valores integrales. Aquí hemos eliminado la llamada de función y la evaluamos con un valor entero. Al hacer esto, el error podría resolverse.

Tipo no válido 'Double (int)':

Al comienzo del programa, abarcamos la biblioteca . Luego definimos el tamaño de la lista. En el cuerpo principal, definimos las variables. El tipo de datos de la lista es 'doble'. Declaramos la función 'get_avg' que tiene el tipo de datos DOBLE. Pasamos dos parámetros para la función. A continuación, declaramos la variable 'suma' con el tipo de datos dobles. Solicitamos bucle, y el valor se incrementa para obtener la suma.

#incluir
#Define el tamaño 15
int main (void)
lista doble;
doble get_avg (const Double List [], int r);
int j;
doble suma = 0;
int n [tamaño];
para (j = 0; jsum += list [j];

retorno (suma);

Aquí también recibimos el mismo error. Porque la función siempre contiene los argumentos con el mismo tipo de datos. Y en este código, pasamos el parámetro de la función que tiene diferentes tipos de datos.

Utilice la declaración if-else:

Este programa primero incluye el archivo de encabezado para fines de entrada y salida. A continuación, usamos el estándar del espacio de nombres. En el cuerpo principal del código, declaramos la cadena 's'. El tipo de datos de la cadena es 'char'. Pasamos el valor 5 como argumento a la cadena. Además, aplicamos la condición if-else; Si el usuario ingresa 'XYZ', la función 'Cout' muestra 'correcta' en la pantalla; De lo contrario, muestra un mensaje 'en correcto'.

#incluir
usando el espacio de nombres STD;
int main ()
char s [5];
cout << "Enter string";
cin >> s;
if (s == 'xyz')

cout << "correct";
demás
cout << "In correct";

regresar 0;

Cuando ejecutamos el programa, adquirimos el error: 'ISO C ++ prohíbe la comparación entre puntero e entero [-fpermissive]. If (s == 'xyz'), aquí 's' es constante char* type. Y esa es una variedad de personajes. Pero aquí, 'xyz' es deliberado como un valor entero. Debe ser un valor de cadena insistente debido al hecho de que una sola comilla se delibera como un valor integral.

Obtenemos diferentes tipos de errores después de ejecutar los programas. Los errores son del error de tiempo de ejecución de dos tipos y el error de tiempo del compilador. Este error es un error de tiempo de ejecución.

Cómo resolver el error?

En adelante, integrar el archivo de encabezado y usar el estándar del espacio de nombres. Hacemos más codificación en el cuerpo principal. La cadena se declara. Usamos 'Cout' para imprimir el mensaje 'Ingrese la cadena' en la pantalla, de modo que el usuario ingrese la cadena. Para verificar la condición, usamos la declaración if-else.

#incluir
usando el espacio de nombres STD;
int main ()
cadena S;
cout << "Enter the string: ";
cin >> s;
if (s == "xyz")

cout << "correct";
demás
cout << "In correct";

regresar 0;

Por lo tanto, para comparación, tenemos que utilizar comillas dobles "xyz". Y establecerlo como una variable de cadena. Ahora podemos relacionarnos usando s == "xyz".

A medida que el usuario ingresa la cadena 'xyz', el programa se imprime correctamente porque definimos la misma cadena en el código anterior. El usuario ingresó una cadena, y la cadena definida es la misma, por lo que obtenemos esta salida.

Conclusión:

Este artículo primero define el error ISO C ++ prohíbe la comparación entre Pointer e Integer. También explicamos la razón detrás de este error. Y el método para resolver este problema. Cuando comparamos las variables que tienen, a diferencia de los tipos de datos, adquirimos este tipo de error. Para eliminar este tipo de error, tenemos que utilizar variables con tipos de datos idénticos al comparar dos variables.