String Probleme
-
Ich komme eigentlich aus der Delphi Ecke, aber wollte mich so langsam in C++ einarbeiten. Angefangen habe ich mit einigen Konsolenanwendungen. Aber jetzt machen mir die Strings zu schaffen. Einen richtigen Typ String gibt es ja anscheinend nicht.
In der Konsolenanwendung soll der Benutzer einen String eingeben (mit Leerzeichen). Dann soll eine Abfrage erfolgen:
if(eingabe != "Test eingegeben") cout << "richtig"
Aber da ich ja keinen richtigen Typ String habe, weiß ich nicht wie ich das realisieren soll. Kann mir da jemand helfen ?
-
wenn du es in c++ machen willst gibts da auch einen string
schau dir mal std::string an
-
Hallo,
wie keinen richtigen Typ "string"? Was spricht denn gegen das:
#include <iostream> #include <string> using namespace std; int main() { string eingabe = "Irgendwas"; if(eingabe != "Test eingegeben") cout << "richtig"; }
-
Der Code funktioniert so, wenn Du als string einfach std::string verwendest.
Dazu einfach string einbinden.
Strings einlesen mit leerzeichen geht übrigens mit getline:
#include <iostream> #include <string> using namespace std; int main() { string eingabe; getline(cin, eingabe); if(eingabe == "Tolles Programm") cout << "Richtig, gut erkannt!" << endl; }
MfG Jester
-
Könnte mir vielleicht jemand ein entsprechendes Beispiel geben ? Sind ja praktisch nur 2 oder 3 Zeilen.
-
std::string eingabe;
std::cin >> eingabe;
if( eingabe != "Test eingeben")
{
std::cout << "richtig";
}noch fragen?
-
huch, stimmt:
getline(std::cin, eingabe);
-
#include <iostream> #include <string> using namespace std; int main() { string eingabe; getline(cin, eingabe); if(eingabe == "Tolles Programm") cout << "Richtig, gut erkannt!" << endl; }
Das funktioniert ja schonmal nicht schlecht. Allerdings muss ich nach der Eingabe 2 mal Enter drücken und das nervt gewaltig. Bekomme ich das auch noch irgendwie hin ?
-
Hallo,
wo genau musst du Enter drücken? Welchen Compiler benutzt du denn? Ich hab das Problem nämlich nicht.
-
Ich benutze Microsoft Visual C++ 6.0.
Das erste Enter nach der Eingabe, dann noch einmal Enter. Erst dann erscheint "richtig, gut erkannt".
dann wird "press any key" angezeigt und das dritte Enter ist fällig. Ich glaube das Problem hätte ich mit Dev C++ nicht, oder ?
-
Pasche schrieb:
Ich benutze Microsoft Visual C++ 6.0.
Guckst du hier: http://www.dinkumware.com/vc_fixes.html (Fix für <string>)
Auf meiner Webseite findest du auch eine zip-Datei mit allen Fixes:
http://fara.cs.uni-potsdam.de/~kaufmann/progs/STLFix.ZIP
-
Pasche schrieb:
Ich glaube das Problem hätte ich mit Dev C++ nicht
Nein
-
Ah ja, jetzt gehts auch mit Visual C++. Danke @HumeSikkins
Eine Frage hätte ich da aber noch. Bei Visual C++ wird ja bei jeder Konsolenanwendung zum Schluss automatisch eine Taste abgefragt. Bei Dev C++ muss man so weit ich weiß ein getchar(); hinzufügen.
kann ich diese letzte abfrage bei Visual c++ auch noch ausschalten ?
-
Die letzte Abfrage bei Visual C++ erscheint nur, wenn Du das Programm von der IDE aus startest (F5). Wenn Du das kompilierte Programm aus dem Explorer startest, beendet sich die Konsole nach dem Programmende.
Gruß,
MTE.P.S.: Komisch, sonst wollen die Leute immer wissen, wie sie das Fenster offenhalten können