Fragen rund um C++
-
sorry soweit bin ich nocht nicht, also fast alle include dateien raus, string dazu, eigtl muss doch auch windows.h oder so dazu sonst funktioniert das
system("PAUSE") nicht...also einfach statt
int nName , nSpezies ;einfach
std::string nName , nSpezies ;soweit habe ich das verstanden...:D
is aber falsch oder?
-
DerBoss schrieb:
std::string nName , nSpezies ;Interessant, wie du gerade selbstständig entdeckst, wieso ungarische Notation in C++ eher unbeliebt ist.
is aber falsch oder?
Dies lässt sich anhand der von dir gelieferten Informationen nicht beantworten. Was soll falsch sein und warum? Hast du die anderen oben genannten Fehler schon korrigiert?
-
Die system Funktion solltest du auch nicht verwenden!
Ersetze sie durchcin.ignore(numeric_limits<char>::max(), '\n' cin.get();Dafür musst du auch limits includen.
Macht das gleiche wie system("PAUSE"), wartet auf einen Tastendruck.
Ansonsten ist es aber in Ordnung.Edit:
@Sepp:
Und den Ersatz für using namespace std.
-
Nathan schrieb:
cin.ignore(numeric_limits<char>::max(), '\n' cin.get();char?
-
Äh, natürlich streamsize. Ich sollte manchmal vielleicht nachdenken bevor ich schreibe...

Edit: std::cin.sync() müsste doch eigentlich auch gehen oder?
-
Nathan schrieb:
Äh, natürlich streamsize. Ich sollte manchmal vielleicht nachdenken bevor ich schreibe...

Edit: std::cin.sync() müsste doch eigentlich auch gehen oder?
Kann gehen muss nicht. Sind glaub schon viele damit die Schnautze gefallen. Glaub es ist implementierungsabhängig.
-
wenn ich das da aber ersetzt (das
sytem("PAUSE"))
durchcin.ignore(numeric_limits<char>::max(), '\n' cin.get();bzw
cin.ignore(numeric_limits<streamsize>::max(), '\n' cin.get();kommen beiM Build die fehler hier:
error espected primary expression before '<' tokenerror: no matching function to call to max()error : 'numeric_limits' was not declared in this scopeerror: expected '(' before 'cin'was soll ich dagegen tun, das mit den messageboxes funktioniert übrigens einwandfrei, danke für den hinweis

das mit dem string und so hab ich net verstanden der dialog funktioniert immer noch nicht
vllt ein beispiel bitte...

EDIT: dieses forum wurde hinten im buch für fragen empfohlen und ich muss sagen bis auf jeden fall antworten leute hier sinnvolle sachen und einem wird geholfen.
-
Hast du #include <limits>?
Was klappt den am Dialog nicht?
-
Wo wird numeric_limits denn deklariert? Fehlt diese Deklaration vielleicht in dieser Übersetzungeinheit?
-
ok danke hab vergessen das zu includen...:)
also bei dem dialog sollte das so sein, dass ich meinen Namen eingebe und der PC den weiterverwendent....
das kommt: http://www.bilderhoster.net/1/dlmwzty7.png.php
http://www.bilderhoster.net/1/tfwty4c1.png.php
so sollte es nicht sein..hier nochmal der code dazu:case 2: { int nName ; int nSpezies ; cout <<"PC: Hallo, wer bist du?\n" <<"Du: Ich bin: " <<endl; cin >> nName; cout <<"PC: Hallo," << nName<< ", ich bin ein Computer!\n" <<"PC: Was für eine Spezies bist du?\n" <<"Du: Ich bin ein/e/er: " <<endl; cin >> nSpezies; cout <<"PC: Was für eine niedere Rasse..:D\n" <<"PC: Tschüss du" << nSpezies <<"! Ich muss weg!" << endl; break; }welche includes kann ich jetzt löschen?
#include <iostream> #include <string> #include <windows.h> #include <winable.h> #include <conio.h> #include <ctime> #include <limits> using namespace std;und nochmal die frage: wie schaffe ich es das ich von den cases wieder zu der auswahl komme, also das programm dann nicht gelich beendet wird...system("PAUSE") hab ich jetzt übrigens rausgenommen...und die message boxen klappen auch, danke schonmal dafür...:D
DerBoss
-
Wo verwendest du den die MessageBoxen?
Raus kann ctime, conio, winable.
Und nName und nSpezies müssen strings sein...
-
DerBoss schrieb:
welche includes kann ich jetzt löschen?
#include <iostream> #include <string> #include <windows.h> #include <winable.h> #include <conio.h> #include <ctime> #include <limits>Probier's doch zeilenweise aus.
-
Ich glaube ich sage zuviel, oder? @volkard
Das mit der Auswahl, packe das komplette Menü (also dein ganzes Programm) in eine Endlossschleife, bei einem neuen Menüpunkt exit wird die verlassen und das Programm beendet.
-
Nathan schrieb:
Ich glaube ich sage zuviel, oder? @volkard
Nö, finde ich nicht.
Hatte geschrieben, er soll es zeilenweise ausprobieren, nicht um irgend ein Rätsel zu stellen oder jemanden zu erziehen, sondern einfach nur, weil ich hier das Ausprobieren für einen total geilen Trick halte, mit dem man sich viel Rätselraten erspart. Theroretisch müßte man für jede Funktion im Handbuch nachschlagen, in welchem Header sie deklariert ist. Wie mühsam. Ausprobieren geht auch. (Ok, theoretisch geht Ausprobieren nicht, es könnte ja hier zufällig was gehen, was auf dem nächsten Compiler nicht geht.)
-
OK, danke für die Tipps, klappt jetzt alles..
brauch ihr immr noch das mit den messageboxen oder hat sich das erledigt?
ps.: nathan Sie/Du schreiben auf keinen fall zu viel, ich finde Sie helfen anfängern wie mir sehr gut und erklären genau...DANKE!!

-
Du, bitte.

Nein, das mit den Messageboxen hat sich jetzt erledigt.
Dir ist aber schon klar, dass dein Code jetzt nur noch auf Windows laufen wird, oder?
Bei so kleinen "Projekten" ist das aber egal. (zumal die vermutlich sowieso kein anderer auf dem Rechner haben wird
)