Anfänger - Programm funktioniert nicht!!!
-
Ich habe ein Programm geschrieben dass bei der Eingabe "Wer ist Petra", "Petra ist eine Nonne" ausgeben soll. Leider schließt sich das Programm sofort nach der Eingabe. Warum ? und wie kann ich das ändern ? Danke schonmal im voraus!
hier der code:#include <iostream>
#include <string>using namespace std;
int main() {
char zeichen = ' ';
std::string eingabe, zeichenkette1, zeichenkette2, zeichenkette3, zeichenkette4, zeichenkette5, zeichenkette6, zeichenkette7;zeichenkette1 = "Was";
zeichenkette2 = "Petra";
zeichenkette3 = "Wer";
zeichenkette4 = "ist";
zeichenkette5 = "eine";
zeichenkette6 = "Nonne";std::cin >> eingabe;
if (eingabe == zeichenkette1 + zeichen + zeichenkette4 + zeichen + zeichenkette2);
std::cout << zeichenkette2 + zeichen + zeichenkette4 + zeichen + zeichenkette5 + zeichen + zeichenkette6<< std::endl;getchar();
getchar();
return 0;
}
-
Hallo
Das Programm soll sich doch auch schliessen; wieso sollte es weiterhin offen sein, wenn es nichts mehr macht?
Ein Fehler im Code ist, dass du mitoperator>>
einliest und dann prüfst, ob der eingelesene String Leerzeichen enthält. Das wird nie der Fall sein, daoperator>>
nur bis zum ersten Whitespace liest. Nutze stattdessenstd::getline
.Ferner, nutze Code-Tags, wenn du Code im Post einfügst:
[code="cpp"][/code]
LG
-
Ok hat geklappt. Danke!
[code="cpp"] [/#include <iostream>
#include <string>
#include <sstream>using namespace std;
int main() {
std::string eingabe, zeichenkette1, zeichenkette2, zeichenkette3, zeichenkette4, zeichenkette5, zeichenkette6, zeichenkette7;
zeichenkette1 = "Was";
zeichenkette2 = "Petra";
zeichenkette3 = "Wer";
zeichenkette4 = "ist";
zeichenkette5 = "eine";
zeichenkette6 = "Nonne";
std::cout << "Bitte stellen Sie eine Frage!";
if (std::getline(std::cin, zeichenkette1 + zeichenkette4 + zeichenkette2));std::cout << zeichenkette2 << ' ' << zeichenkette4 << ' ' << zeichenkette5 << ' ' << zeichenkette6<< std::endl;
getchar();
getchar();
return 0;
}]
-
Das if hat keinerlei Auswirkung mit dem ; am Ende der Zeile.
-
Wenn du jetzt auch noch die unten im Editor stehenden Code tags benutzt, dann: