2 fragen zu nem komischen source ^^
-
hier ma was aus nem source, den ich im inet gefunden hab....
wenn ich das bei mir compilen will, macht er das zwar, aber wenn ich dann am ende des progs angekommen bin, beendet er das prog einfach....(trotz cin.get())habe schon das aussem dos/win32console faq probiert, will aber au nicht
dazu ma schnell 2 fragen:
also, 1. frage:
Ist das komplett c++? wenn nicht, was nicht?
2.:
Was is da falsch das er dauernd am ende schließt??
#include <iostream> #include <cstdio> #include <string> using namespace std; int main (int argc, char *argv[]) { char name1[20]; cout << "Hi, wie heisst Du?" << endl; cin >> name1; int alter1; cout << "Ah, hi " << name1 << ", wie alt bist' denn?" << endl; cin >> alter1; char ort1[20]; cout << "Oh, " << alter1 << " Jahre alt bist' schon ^^, und woher kommst Du?" << endl; cin >> ort1; string gefuehl1; cout << "Aus " << ort1 << " kommst also " << name1 << ", und wie geht's Dir gerad' so?" << endl; cin >> gefuehl1; if (gefuehl1 == "gut") { cout << "Gut das es Dir gut geht ;D" << endl; } else if (gefuehl1 == "schlecht"); { cout << "Hm, was bedrueckt Dich denn?" << endl; } else { cout << "Achso ;D" << endl; } cin.get(); return 0; };
danke pred
-
das dass Programm beim cin.get nicht wartet, liegt daran, dass der Tastatur Buffer noch ein Zeichen enthaelt! AFAIK wird das \n beim std::string >> operator nicht eingelesen.
Der Code ist zwar C++, aber nicht besonders sauber IMHO
-
Das Semikolon am Ende des else if Zweiges ist störend.
std::string sollte char-Array vorgezogen werden.
return 0 am Ende ist nach C++-Standard von 1998 überflüssig (wird vom Compiler automatisch generiert).
Die Parameter der Funktion main() werden hier nicht verwendet, daher einfach weglassen.
Am Ende benötigt man eine selbst geschriebene C++-Funktion wait() oder deutlich einfacher getch() aus < conio.h > :#include <iostream> #include <string> #include <conio.h> using namespace std; int main () { string name1; cout << "Hi, wie heisst Du?" << endl; cin >> name1; int alter1; cout << "Ah, hi " << name1 << ", wie alt bist Du?" << endl; cin >> alter1; string ort1; cout << "Oh, " << alter1 << " Jahre alt bist Du schon, und woher kommst Du?" << endl; cin >> ort1; string gefuehl1; cout << "Aus " << ort1 << " kommst Du also " << name1 << ", und wie geht's Dir gerade so?" << endl; cin >> gefuehl1; if (gefuehl1 == "gut") { cout << "Fein, dass es Dir gut geht. ;D" << endl; } else if (gefuehl1 == "schlecht") { cout << "Hm, was bedrueckt Dich denn?" << endl; } else { cout << "Ach so. ;D" << endl; } getch(); };
-
gut gut danke, hat gefunzt
-
Erhard Henkes schrieb:
Am Ende benötigt man eine selbst geschriebene C++-Funktion wait() oder deutlich einfacher getch() aus < conio.h > :
quatsch, vorallem sollte man nicht die conio.h dafür nehmen (gib noch mehr als DOS)
-
Was heisst hier Quatsch? Viele verwenden MS Windows, und da blitzt es nur kurz. Also benötigt man eine einfache und schnelle Lösung. getch() mit conio.h bietet diese. Wer es nicht mag, kann's ja lassen oder auf sein OS anpassen.
-
.. schrieb:
Was heisst hier Quatsch? Viele verwenden MS Windows, und da blitzt es nur kurz. Also benötigt man eine einfache und schnelle Lösung. getch() mit conio.h bietet diese. Wer es nicht mag, kann's ja lassen oder auf sein OS anpassen.
Nur kann es dir mit einem einfachen getch() passieren, dass keine Eingabe durchgeführt wird - siehe Konsolen-FAQ "Automatisches Schließen verhindern".
MfG SideWinder