In questo artefatto, stiamo lavorando su questi errori e vediamo come risolverli in C++.
Avere diversi tipi di dati di variabili durante il confronto:
Dopo aver utilizzato lo standard dello spazio dei nomi, dichiariamo la funzione in questa istanza. Quindi inizializziamo la variabile 'V' per valore e assegniamo il valore 1. Applichiamo la condizione if per confrontare il valore con la funzione. Se il valore è maggiore della funzione, ci sarà un incremento di 1 nel valore. La funzione deve restituire il valore. Ora iniziamo il corpo principale del codice. Dichiariamo la variabile "V".
#includere
Utilizzo dello spazio dei nomi std;
int f (int j, int k)
int v = 1;
if (v> f)
restituire (v+1);
restituzione v;
int main ()
int v = f (4,7);
restituzione 0;
Dopo la compilazione, otteniamo l'errore 'ISO C ++ proibisce il confronto tra puntatore e intero [-fpermissive]', quindi il programma non viene eseguito.
Quando applichiamo la condizione se (v> f), commettiamo un errore qui. Confrontiamo la funzione con il numero intero, quindi qui questo confronto è sbagliato. Confronta sempre quelle variabili che contengono un tipo di dati simile. Quando una valutazione è inaccurata, acquisiremo questo tipo di errore. Quindi proprio qui, dobbiamo valutare con alcuni valori integrali. Qui abbiamo eliminato la chiamata di funzione e la valutata con un valore intero. In questo modo, l'errore potrebbe essere risolto.
Tipo non valido 'Double (int)':
All'inizio del programma, comprendiamo la biblioteca . Quindi definiamo le dimensioni dell'elenco. Nel corpo principale, definiamo le variabili. Il tipo di dati dell'elenco è "doppio". Dichiariamo la funzione "get_avg" con tipo di dati doppio. Passiamo due parametri per la funzione. Successivamente, dichiariamo la variabile "somma" con il doppio tipo di dati. Facciamo domanda per loop e il valore viene incrementato per ottenere la somma.
#includere
#define size 15
int main (void)
doppia lista;
double get_avg (const double list [], int r);
int j;
doppia somma = 0;
int n [dimensione];
per (j = 0; jSum += elenco [j];
restituzione (somma);
Qui otteniamo anche lo stesso errore. Perché la funzione contiene sempre gli argomenti con lo stesso tipo di dati. E in questo codice, passiamo il parametro della funzione con diversi tipi di dati.
Usa l'istruzione if-else:
Questo programma include innanzitutto il file di intestazione per scopi di input e output. Successivamente, utilizziamo lo standard dello spazio dei nomi. Nel corpo principale del codice, dichiariamo la stringa "s". Il tipo di dati della stringa è 'char'. Passiamo il valore 5 come argomento alla stringa. Inoltre, applichiamo la condizione IF-ELSE; Se l'utente inserisce "XYZ", la funzione "Cout" visualizza "corretta" sullo schermo; Altrimenti, visualizza un messaggio "in corretto".
#includere
Utilizzo dello spazio dei nomi std;
int main ()
Char S [5];
cout << "Enter string";
CIN >> s;
if (s == 'xyz')
cout << "correct";
altro
cout << "In correct";
restituzione 0;
Quando eseguiamo il programma, acquisiamo l'errore: 'ISO C ++ proibisce il confronto tra puntatore e intero [-fpermissive]. If (s == 'xyz'), ecco 's' è un tipo di char* costante*. E questa è una serie di personaggi. Ma qui, "xyz" è deliberato come valore intero. Deve essere un valore di stringa insistente a causa del fatto che un singolo segno di preventivo è deliberato come valore integrale.
Riceviamo diversi tipi di errori dopo aver eseguito i programmi. Gli errori sono di errore di runtime di due tipi e errore del tempo del compilatore. Questo errore è un errore di runtime.
Come risolvere l'errore?
In seguito integrare il file di intestazione e utilizzare lo standard dello spazio dei nomi. Facciamo ulteriori codifiche nel corpo principale. La stringa è dichiarata. Utilizziamo 'cout' per stampare il messaggio 'immettere la stringa' sullo schermo, in modo che l'utente inserisca la stringa. Per verificare la condizione, utilizziamo l'istruzione IF-ELSE.
#includere
Utilizzo dello spazio dei nomi std;
int main ()
stringhe;
cout << "Enter the string: ";
CIN >> s;
if (s == "xyz")
cout << "correct";
altro
cout << "In correct";
restituzione 0;
Quindi, per fare un confronto, dobbiamo utilizzare le doppie virgolette "XYZ". E dichiaralo come una variabile di stringa. Ora possiamo relazionarci usando s == "xyz".
Poiché l'utente inserisce la stringa "XYZ", il programma stampa correttamente perché abbiamo definito la stessa stringa nel codice sopra. L'utente ha inserito una stringa e la stringa definita è la stessa, quindi otteniamo questo output.
Conclusione:
Questo articolo definisce prima l'errore ISO C ++ proibisce il confronto tra puntatore e intero. Abbiamo anche spiegato il motivo dietro questo errore. E il metodo per risolvere questo problema. Quando confrontiamo le variabili con, a differenza dei tipi di dati, acquisiamo questo tipo di errore. Per eliminare questo tipo di errore, dobbiamo utilizzare variabili con tipi di dati identici quando si confrontano due variabili.