Programm funktioniert nicht(Testprogramm)
-
'Gut' ???
-
Ok danke ich habe noch ein paar Fragen muss ich using namespace std; nehmen um "string" benutzen zu können?Wäre das auch mit Arrays möglich?Ich wollte nämlich Arrays "üben".
-
Achso und wenn iostream veraltet ist was soll ich denn dann nutzen?Danke,
mfg Tommy438
-
--------------------Konfiguration: Testen1 - Win32 Debug--------------------
Kompilierung läuft...
Testen1.cpp
C:\Entwicklungen\Testen\Testen1.cpp(3) : error C2871: 'std' : Existiert nicht oder ist kein Namespace
C:\Entwicklungen\Testen\Testen1.cpp(7) : error C2065: 'string' : nichtdeklarierter Bezeichner
C:\Entwicklungen\Testen\Testen1.cpp(7) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'eingabe'
C:\Entwicklungen\Testen\Testen1.cpp(7) : error C2065: 'eingabe' : nichtdeklarierter Bezeichner
C:\Entwicklungen\Testen\Testen1.cpp(19) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
Fehler beim Ausführen von cl.exe.Testen1.exe - 4 Fehler, 1 Warnung(en)
Das ist die Fehlermeldung wenn ich Kompilieren will.
-
@Elise: ok, ich verbessere! War nur copy 'n paste.
@tommy: iostream.h und string.h sind veraltet, du musst iostream und string verwenden! (ohne .h) Und, ja, du musst using namespace std verwenden wenn du diese dateien verwenden willst (natürlich geht auch: std::string z.b.)
/OK, les grad dein post! Hab an dem Programm noch ne kleinigkeit verändert ("gut" statt 'gut') Was für einen kompiler hast du? (oder nur vergessen das .h zu löschen?)
-
Ok,jetzt ist die Fehlermeldung nur noch:-------------------Konfiguration: Testen1 - Win32 Debug--------------------
Kompilierung läuft...
Testen1.cpp
c:\entwicklungen\testen\testen1.cpp(11) : error C2676: Binaerer Operator '==' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinier
ten Operator geeigneten Typ nicht
c:\entwicklungen\testen\testen1.cpp(19) : warning C4508: 'main' : Funktion sollte einen Wert zurueckgeben; Ergebnistyp 'void' angenommen
Fehler beim Ausführen von cl.exe.Testen1.exe - 1 Fehler, 1 Warnung(en)
-
Ok jetzt hab ich euch erstmal mit Fehlermeldungen überschüttet
-
Zur sache mit den Arrays: ja, aber dann brauchst du net string! Allgemein gesehen ist string und vector aber einfacher als array.
-
Erstmal ist nicht iostream veraltet sondern iostream.h ! So wie Ness es zeigt ist es schon ok aber es heißt natürlich "Gut" und nicht 'Gut' . Denn '' ist für einzelne Zeichen/Buchstaben und "" für einen ganzen string.
Ok wenn du es mit einen char array machen willst ginge z.b. das hier:
#include <iostream> using namespace std; //Zwar nicht die schönste Methode aber erstmal ok int main() { char eingabe[10]; cout << "Gib ein wie du dieses Programm findest:Gut, Schlecht oder Geht So!\n"; cin >> eingabe; if( !strcmp(eingabe, "Gut") ) //bzw. if(strcmp(eingabe, "Gut") ==0) { cout << "Finde ich auch.\n"; }else { cout << "Ich stimme dir nicht zu.\n"; } }
Du musst strcmp nehmen um char* bzw char[] zu vergleichen, da das normale == nur die Adressen vergleicht aber nicht den Inhalt...
-
if(eingabe == "Gut")
muss heissen
if(eingabe.compare("Gut") == 0 )
Kurt
-
Ok danke es klappt.
-
@ ZuK
Muss es nicht
-
habs gerade geändert
-
@ ZuK
Wenn es aber ein string ist reicht doch == "Gut" ...
-
es scheint ich lebe schon längere zeit im irrtum
habe wirklich geglaubt der string operator == vergleicht die adressen.
sorry
-
@ZuK
Das ist nur bei char* so ... Die string klasse hat ihren == operator dafür überladen