[Warning] comparison is always false due to limited range of data type
-
Ich habe diesen code:
char eingabe[2]; cin >> eingabe; if(eingabe=='co') { cout << "es hat geklappt"; }Dann bekomme ich diesen Fehler:
[Warning] comparison is always false due to limited range of data type
Kennt jemand meinen fehler?
Danke schon vorraus!
Ps: Ich bin ein ziemlicher neuling!
-
eingabe ist ein zeiger.
'co' ist ein integer.stattdessen:
if (eingabe[0]=='c' && eingabe[1]=='o')vgl. hier
-
hellihjb schrieb:
eingabe ist ein zeiger.
'co' ist ein integer.loesung:
if (eingabe[0]=='c' && eingabe[1]=='o')Eigentlich ist 'co' ein char.
grüße
-
Oder so:
char vgl[]="cu"; if(strcmp (vgl,eingabe) != 0) ...
-
Noch mehr C geht nich ne?

Wenn dann die C++ Lösung:
#include <string> // ... if ( eingabe == "co" ) { // foo }grüße
-
#include <string> using namespace std; //.... std::string eingabe; cin >> eingabe; if ( eingabe == "co" ) { // foo }
-
Eigentlich ist 'co' ein char.
dann zeig mal einen "char" auf den das zutraefe

-
David_pb schrieb:
hellihjb schrieb:
eingabe ist ein zeiger.
'co' ist ein integer.loesung:
if (eingabe[0]=='c' && eingabe[1]=='o')Eigentlich ist 'co' ein char.
grüße
danke, hat geklappt!
-
hellihjb schrieb:
Eigentlich ist 'co' ein char.
dann zeig mal einen "char" auf den das zutraefe

Ich meinte die ''.
Natürlich is das mindestens ein Charakter zu viel! :-]
-
hellihjb schrieb:
eingabe ist ein zeiger.
Nicht ganz. eingabe ist und bleibt ein Array.
David_pb schrieb:
Eigentlich ist 'co' ein char.
Nein, da hat hellihjb schon Recht. 'co' ist vom Typ int, genauer gesagt ein multi-character Literal.
-
Übrigens ist dein Array vermutlich zu klein für das, was du vorhast - dort passt nur ein char und der Null-Terminator rein.
(d.h. wenn du längere Texte reinschreiben willst, füllt op>> ohne Rückfragen Speicherbereiche, die dir nicht gehören)